home *** CD-ROM | disk | FTP | other *** search
/ Tripas 5 / TRIPAS 005.iso / Wos.EXE / base / maps / csite.scr < prev    next >
Encoding:
Text File  |  1999-02-24  |  73.8 KB  |  2,993 lines

  1. //***************************************************************************
  2. // Construction Site
  3. // Ritual Entertainment - Charlie Wiederhold
  4. //***************************************************************************
  5.  
  6. setdialogscript dialog/dialog_csite.scr
  7.  
  8. level.SkillLevel getcvar skill
  9.  
  10. thread csite_init_thread
  11.  
  12. thread drawer_thread
  13. thread desk_drawer_thread
  14. thread cabinet1_thread
  15. thread cabinet5_thread
  16. thread cabinet8_thread
  17. thread cabinet12_thread
  18.  
  19. thread large_barrel_thread
  20. thread beam_fall_thread
  21. thread flood1_thread
  22. thread pipe1_thread
  23. thread generator_thread
  24. thread generator_light_thread
  25. thread generator_shake_thread
  26.  
  27. thread wood1_thread
  28. thread wood2_thread
  29. thread wood3_thread
  30. thread wood4_thread
  31. thread wood5_thread
  32. thread wood6_thread
  33. thread wood7_thread
  34. thread wood8_thread
  35. thread wood9_thread
  36. thread wood11_thread
  37. thread wood12_thread
  38. thread wood13_thread
  39. thread wood14_thread
  40. thread wood15_thread
  41. thread wood16_thread
  42. thread wood17_thread
  43. thread wood18_thread
  44. thread wood19_thread
  45.  
  46. //-------------------------------------------------------
  47. //-------------------------------------------------------
  48. // Wieder Additions
  49. //-------------------------------------------------------
  50. //-------------------------------------------------------
  51.  
  52. thread ValveInPool
  53. thread DumpsterThread
  54. thread Dumpster2Thread
  55.  
  56. thread SpeedsPortal1
  57. thread Generator_Flicker
  58. thread Crane
  59.  
  60. thread VatorDoorSetup
  61. thread VatorRope1
  62. thread VatorRope2
  63.  
  64. $abandon_abo_water hide
  65. $abandon_abo_water notsolid
  66. $abandon_abo_water2 hide
  67. $abandon_abo_water2 notsolid
  68. $abandon_abo_clipper notsolid
  69.  
  70. $vator_bubbles anim off
  71. game.Abandon_ValveActivated ifequal 0 goto SkippedSecretArea
  72. $vator_bubbles anim idle
  73. $abandon_abo_water show
  74. $abandon_abo_water solid
  75. $abandon_abo_water1 hide
  76. $abandon_abo_water1 notsolid
  77. $abandon_abo_water2 show
  78. $abandon_abo_water2 solid
  79. $abandon_abo_clipper solid
  80. parm.Door string "$abandon_abo_vator_door1"
  81. parm.StartAngle = -80
  82. parm.Speed = 2.5
  83. thread AbandonABO_VatorDoorSetup
  84. parm.Door string "$abandon_abo_vator_door2"
  85. parm.StartAngle = -45
  86. parm.Speed = 2
  87. thread AbandonABO_VatorDoorSetup
  88. thread AbandonABO_Box1
  89. thread AbandonABO_Box2
  90. thread AbandonABO_Box3
  91. thread AbandonABO_Box4
  92. thread AbandonABO_Box5
  93. thread AbandonABO_Box6
  94. thread AbandonABO_Box7
  95. thread AbandonABO_Lights
  96. SkippedSecretArea:
  97.  
  98. thread CreakingBoard1
  99. thread CreakingBoard2
  100.  
  101. //-------------------------------------------------------
  102. //-------------------------------------------------------
  103. // Wieder Character Additions
  104. //-------------------------------------------------------
  105. //-------------------------------------------------------
  106.  
  107. game.Abandon_HostageKilled ifequal 1 $hostage_roof remove
  108. game.Abandon_HostageKilled ifequal 0 $hostage_roof thread AI_Hostage_Roof
  109.  
  110. $mancini_jumping thread AI_Mancini_Jumping
  111. $mancini_tube thread AI_Mancini_Tube
  112. $mancini_ladder thread AI_Mancini_Ladder
  113. $mancini_final thread AI_Mancini_Final
  114.  
  115. $hostage_vator thread AI_Hostage_Vator
  116.  
  117. $thug_dumpster thread AI_Thug_Dumpster
  118. $thug_ledge1 thread AI_Thug_Ledge1
  119. $thug_ledge2 thread AI_Thug_Ledge2
  120. $thug1_roof1 thread AI_Thug1_Roof1
  121. $thug2_roof1 thread AI_Thug2_Roof1
  122.  
  123. $csite_thug1 thread AI_CYard_Thug1
  124. $csite_thug2 thread AI_CYard_Thug2
  125. $csite_thug3 thread AI_CYard_Thug3
  126. $csite_worker1 thread AI_PushWorker
  127.  
  128. $basement_thug6 item health 50
  129. $basement_thug7 item health 50
  130. level.SkillLevel ifless 2 $basement_thug1 remove
  131. level.SkillLevel ifless 2 $basement_thug2 remove
  132. level.SkillLevel ifgreaterequal 2 $basement_thug1 thread AI_Basement_Thug1
  133. level.SkillLevel ifgreaterequal 2 $basement_thug2 thread AI_Basement_Thug2
  134. $basement_thug_ambush thread AI_Basement_ThugAmbush
  135. parm.ThugNum = 3
  136. $basement_thug3 thread AI_Basement_Thugs
  137. parm.ThugNum = 4
  138. $basement_thug4 thread AI_Basement_Thugs
  139. parm.ThugNum = 5
  140. $basement_thug5 thread AI_Basement_Thugs
  141. parm.ThugNum = 6
  142. $basement_thug6 thread AI_Basement_Thugs
  143. parm.ThugNum = 7
  144. $basement_thug7 thread AI_Basement_Thugs
  145.  
  146. $pool_thug1 item GlowStick 2
  147.  
  148. $bum1 thread AI_Bum1
  149. $bum2 thread AI_Bum2
  150.  
  151. $vator_thug1 thread AI_Vator_Thug1
  152. $vator_thug2 thread AI_Vator_Thug2
  153. $vator_thug3 thread AI_Vator_Thug3
  154.  
  155. $t9 thread AI_OutsideThugs
  156. $end_thug3 thread AI_EndThugs
  157.  
  158. $foreman thread AI_Foreman
  159.  
  160. end
  161.  
  162. //============================================================
  163. //============================================================
  164.  
  165. csite_init_thread:
  166.  
  167. level.PObjective1 = 0 // Continue Chasing Mancini
  168. level.PObjective2 = 0 // Eliminate Hostile Forces
  169. level.SObjective2 = 0 // Rescue Any Remaining Hostages
  170. level.SObjective1 = 0 // Find Incriminating Evidence
  171.  
  172. level.PipeDown = 0
  173. level.DoorBroken = 0
  174. level.HostageCount = 0
  175. level.Hostage1Taunted = 0
  176. level.Hostage2Taunted = 0
  177. game.Abandon_HostageKilled ifequal 1 level.HostageCount += 1
  178. game.csite_HaveBlueprints = 0
  179. $open1 open
  180.  
  181. $door_break_portal close
  182. waitForPlayer
  183.  
  184. wait 1
  185. thread dialog::jc_unused_subway
  186. local.WaitingForThread = parm.previousthread
  187. waitForThread local.WaitingForThread
  188. wait 1
  189. thread MissionComputer
  190. thread global/universal_script.scr::StatusUpdated
  191. local.WaitingForThread = parm.previousthread
  192. waitForThread local.WaitingForThread
  193.  
  194. end
  195.  
  196. //============================================================
  197. //============================================================
  198.  
  199. drawer_thread:
  200.  
  201. local.drawer_index = 1
  202.  
  203. drawer_loop:
  204.  
  205. parm.drawer string "$drawer"
  206. parm.drawer appendint local.drawer_index
  207.  
  208. thread drawer_setup_thread
  209.  
  210. local.drawer_index += 1
  211. local.drawer_index iflessequal 4 goto drawer_loop
  212. end
  213.  
  214. drawer_setup_thread:
  215. local.drawer string parm.drawer
  216. local.drawer time 1
  217.  
  218. drawer_start:
  219. local.drawer onuse drawer_open
  220. pause
  221.  
  222. drawer_open:
  223. local.drawer nouse
  224. local.drawer playsound environment/cabinet/drawer/cab11.wav 1.0
  225. local.drawer moveEast 20
  226. waitFor local.drawer
  227.  
  228. local.drawer onuse drawer_close
  229. pause
  230.  
  231. drawer_close:
  232. local.drawer nouse
  233. local.drawer moveWest 20
  234. waitFor local.drawer
  235. local.drawer playsound environment/cabinet/drawer/cab12.wav 1.0
  236. goto drawer_start
  237. end
  238.  
  239.  
  240.  
  241.  
  242.  
  243. desk_drawer_thread:
  244.  
  245. local.desk_drawer_index = 1
  246.  
  247. desk_drawer_loop:
  248.  
  249. parm.desk_drawer string "$desk_drawer"
  250. parm.desk_drawer appendint local.desk_drawer_index
  251.  
  252. thread desk_drawer_setup_thread
  253.  
  254. local.desk_drawer_index += 1
  255. local.desk_drawer_index iflessequal 2 goto desk_drawer_loop
  256. end
  257.  
  258.  
  259.  
  260. desk_drawer_setup_thread:
  261.  
  262. local.desk_drawer string parm.desk_drawer
  263.  
  264. local.desk_drawer time 1
  265.  
  266. desk_drawer_start:
  267. local.desk_drawer onuse desk_drawer_open
  268. pause
  269.  
  270. desk_drawer_open:
  271. local.desk_drawer nouse
  272. local.desk_drawer playsound environment/cabinet/drawer/cab11.wav 1.0
  273. local.desk_drawer moveNorth 20
  274. waitFor local.desk_drawer
  275.  
  276. local.desk_drawer onuse desk_drawer_close
  277. pause
  278.  
  279. desk_drawer_close:
  280. local.desk_drawer nouse
  281. local.desk_drawer moveSouth 20
  282. waitFor local.desk_drawer
  283. local.desk_drawer playsound environment/cabinet/drawer/cab12.wav 1.0
  284. goto desk_drawer_start
  285. end
  286.  
  287.  
  288.  
  289. //============================================================
  290. //============================================================
  291.  
  292. cabinet1_thread:
  293.  
  294. local.cabinet1_index = 1
  295.  
  296. cabinet1_loop:
  297.  
  298. parm.cabinet1 string "$cabinet"
  299. parm.cabinet1 appendint local.cabinet1_index
  300.  
  301. thread cabinet1_setup_thread
  302.  
  303. local.cabinet1_index += 1
  304. local.cabinet1_index iflessequal 4 goto cabinet1_loop
  305. end
  306.  
  307. cabinet1_setup_thread:
  308. local.cabinet1 string parm.cabinet1
  309. local.cabinet1 time 1
  310.  
  311. cabinet1_start:
  312. local.cabinet1 onuse cabinet1_open
  313. pause
  314.  
  315. cabinet1_open:
  316. local.cabinet1 nouse
  317. local.cabinet1 playsound environment/cabinet/latch32.wav 1.0
  318. local.cabinet1 rotateYup 90
  319. waitFor local.cabinet1
  320.  
  321. local.cabinet1 onuse cabinet1_close
  322. pause
  323.  
  324. cabinet1_close:
  325. local.cabinet1 nouse
  326. local.cabinet1 rotateYdown 90
  327. waitFor local.cabinet1
  328. local.cabinet1 playsound environment/doors/metal/mtldrcl3.wav 1.0
  329. goto cabinet1_start
  330. end
  331.  
  332.  
  333. cabinet5_thread:
  334.  
  335. local.cabinet5_index = 5
  336.  
  337. cabinet5_loop:
  338.  
  339. parm.cabinet5 string "$cabinet"
  340. parm.cabinet5 appendint local.cabinet5_index
  341.  
  342. thread cabinet5_setup_thread
  343.  
  344. local.cabinet5_index += 1
  345. local.cabinet5_index iflessequal 7 goto cabinet5_loop
  346. end
  347.  
  348. cabinet5_setup_thread:
  349. local.cabinet5 string parm.cabinet5
  350. local.cabinet5 time 1
  351.  
  352. cabinet5_start:
  353. local.cabinet5 onuse cabinet5_open
  354. pause
  355.  
  356. cabinet5_open:
  357. local.cabinet5 nouse
  358. local.cabinet5 playsound environment/cabinet/latch32.wav 1.0
  359. local.cabinet5 rotateYdown 90
  360. waitFor local.cabinet5
  361.  
  362. local.cabinet5 onuse cabinet5_close
  363. pause
  364.  
  365. cabinet5_close:
  366. local.cabinet5 nouse
  367. local.cabinet5 rotateYup 90
  368. waitFor local.cabinet5
  369. local.cabinet5 playsound environment/doors/metal/mtldrcl3.wav 1.0
  370. goto cabinet5_start
  371. end
  372.  
  373.  
  374.  
  375. cabinet8_thread:
  376.  
  377. local.cabinet8_index = 8
  378.  
  379. cabinet8_loop:
  380.  
  381. parm.cabinet8 string "$cabinet"
  382. parm.cabinet8 appendint local.cabinet8_index
  383.  
  384. thread cabinet8_setup_thread
  385.  
  386. local.cabinet8_index += 1
  387. local.cabinet8_index iflessequal 11 goto cabinet8_loop
  388. end
  389.  
  390. cabinet8_setup_thread:
  391. local.cabinet8 string parm.cabinet8
  392. local.cabinet8 time 1
  393.  
  394. cabinet8_start:
  395. local.cabinet8 onuse cabinet8_open
  396. pause
  397.  
  398. cabinet8_open:
  399. local.cabinet8 onblock cabinet8_close
  400. local.cabinet8 nouse
  401. local.cabinet8 playsound environment/cabinet/latch32.wav 1.0
  402. local.cabinet8 rotateYupto 90
  403. waitFor local.cabinet8
  404.  
  405. local.cabinet8 onuse cabinet8_close
  406. pause
  407.  
  408. cabinet8_close:
  409. local.cabinet8 onblock cabinet8_open
  410. local.cabinet8 nouse
  411. local.cabinet8 rotateYdownto 0
  412. waitFor local.cabinet8
  413. local.cabinet8 playsound environment/doors/metal/mtldrcl3.wav 1.0
  414. goto cabinet8_start
  415.  
  416. local.cabinet8 ifstrequal "$cabinet11" local.cabinet8 notsolid
  417. local.cabinet8 ifstrequal "$cabinet11" local.cabinet8 solid
  418.  
  419. end
  420.  
  421.  
  422. cabinet12_thread:
  423.  
  424. local.cabinet12_index = 12
  425.  
  426. cabinet12_loop:
  427.  
  428. parm.cabinet12 string "$cabinet"
  429. parm.cabinet12 appendint local.cabinet12_index
  430.  
  431. thread cabinet12_setup_thread
  432.  
  433. local.cabinet12_index += 1
  434. local.cabinet12_index iflessequal 14 goto cabinet12_loop
  435. end
  436.  
  437. cabinet12_setup_thread:
  438. local.cabinet12 string parm.cabinet12
  439. local.cabinet12 time 1
  440.  
  441. cabinet12_start:
  442. local.cabinet12 onuse cabinet12_open
  443. pause
  444.  
  445. cabinet12_open:
  446. local.cabinet12 nouse
  447. local.cabinet12 onblock cabinet12_close
  448. local.cabinet12 playsound environment/cabinet/latch32.wav 1.0
  449. local.cabinet12 rotateYdownto -90
  450. waitFor local.cabinet12
  451.  
  452. local.cabinet12 onuse cabinet12_close
  453. pause
  454.  
  455. cabinet12_close:
  456. local.cabinet12 nouse
  457. local.cabinet12 onblock cabinet12_open
  458. local.cabinet12 rotateYupto 0
  459. waitFor local.cabinet12
  460. local.cabinet12 playsound environment/doors/metal/mtldrcl3.wav 1.0
  461. goto cabinet12_start
  462. end
  463.  
  464. //============================================================
  465. //============================================================
  466.  
  467.  
  468. wood1_thread:
  469.  
  470. $wood1 time .5
  471.  
  472. $wood1 ontouch wood1_sequence
  473. pause
  474.  
  475. wood1_sequence:
  476. $wood1 notouch
  477. $wood1 notsolid
  478. $wood1 playsound environment/woodcreak/crkngwds.wav 1.0
  479. $wood1 moveDown 200
  480. waitFor $wood1
  481. $wood1 playsound impact/explosion/track65.wav 1.0
  482. $wood1 notsolid
  483. end
  484.  
  485. wood2_thread:
  486.  
  487. $wood2 time .5
  488.  
  489. $wood2 ontouch wood2_sequence
  490. pause
  491.  
  492. wood2_sequence:
  493. $wood2 notouch
  494. $wood2 notsolid
  495. $wood2 playsound environment/woodcreak/crkngwds.wav 1.0
  496. $wood2 moveDown 200
  497. waitFor $wood2
  498. $wood2 playsound impact/explosion/track65.wav 1.0
  499. end
  500.  
  501. wood3_thread:
  502.  
  503. $wood3 time .5
  504.  
  505. $wood3 ontouch wood3_sequence
  506. pause
  507.  
  508. wood3_sequence:
  509. $wood3 notouch
  510. $wood3 notsolid
  511. $wood3 playsound environment/woodcreak/crkngwds.wav 1.0
  512. $wood3 moveDown 200
  513. $wood3 moveNorth 16
  514. $wood3 rotateYdown 30
  515. waitFor $wood3
  516. $wood3 playsound impact/explosion/track65.wav 1.0
  517. end
  518.  
  519. wood4_thread:
  520.  
  521. $wood4 time .5
  522.  
  523. $wood4 ontouch wood4_sequence
  524. pause
  525.  
  526. wood4_sequence:
  527. $wood4 notouch
  528. $wood4 notsolid
  529. $wood4 playsound environment/woodcreak/crkngwds.wav 1.0
  530. $wood4 moveDown 200
  531. waitFor $wood4
  532. $wood4 playsound impact/explosion/track65.wav 1.0
  533. end
  534.  
  535. wood5_thread:
  536.  
  537. $wood5 time .5
  538.  
  539. $wood5 ontouch wood5_sequence
  540. pause
  541.  
  542. wood5_sequence:
  543. $wood5 notouch
  544. $wood5 notsolid
  545. $wood5 playsound environment/woodcreak/crkngwds.wav 1.0
  546. $wood5 moveDown 200
  547. $wood5 moveWest 16
  548. $wood5 moveNorth 16
  549. $wood5 rotateYup 15
  550. waitFor $wood5
  551. $wood5 playsound impact/explosion/track65.wav 1.0
  552. end
  553.  
  554. wood6_thread:
  555.  
  556. $wood6 time .5
  557.  
  558. $wood6 ontouch wood6_sequence
  559. pause
  560.  
  561. wood6_sequence:
  562. $wood6 notouch
  563. $wood6 notsolid
  564. $wood6 playsound environment/woodcreak/crkngwds.wav 1.0
  565. $wood6 moveDown 200
  566.  
  567. waitFor $wood6
  568. $wood6 playsound impact/explosion/track65.wav 1.0
  569. end
  570.  
  571. wood7_thread:
  572.  
  573. $wood7 time .5
  574.  
  575. $wood7 ontouch wood7_sequence
  576. pause
  577.  
  578. wood7_sequence:
  579. $wood7 notouch
  580. $wood7 notsolid
  581. $wood7 playsound environment/woodcreak/crkngwds.wav 1.0
  582. $wood7 moveDown 200
  583. $wood7 moveSouth 24
  584. waitFor $wood7
  585. $wood7 playsound impact/explosion/track65.wav 1.0
  586. end
  587.  
  588. wood8_thread:
  589.  
  590. $wood8 time .5
  591.  
  592. $wood8 ontouch wood8_sequence
  593. pause
  594.  
  595. wood8_sequence:
  596. $wood8 notouch
  597. $wood8 notsolid
  598. $wood8 playsound environment/woodcreak/crkngwds.wav 1.0
  599. $wood8 moveDown 200
  600. waitFor $wood8
  601. $wood8 playsound impact/explosion/track65.wav 1.0
  602. end
  603.  
  604. wood9_thread:
  605.  
  606. $wood9 time .5
  607.  
  608. $wood9 ontouch wood9_sequence
  609. pause
  610.  
  611. wood9_sequence:
  612. $wood9 notouch
  613. $wood9 notsolid
  614. $wood9 playsound environment/woodcreak/crkngwds.wav 1.0
  615. $wood9 moveDown 200
  616. $wood9 moveSouth 16
  617. $wood9 moveEast 16
  618. $wood9 rotateYup 20
  619. waitFor $wood9
  620. $wood9 playsound impact/explosion/track65.wav 1.0
  621. end
  622.  
  623. wood10_thread:
  624.  
  625. $wood10 time .5
  626.  
  627. $wood10 ontouch wood10_sequence
  628. pause
  629.  
  630. wood10_sequence:
  631. $wood10 notouch
  632. $wood10 notsolid
  633. $wood10 playsound environment/woodcreak/crkngwds.wav 1.0
  634. $wood10 moveDown 200
  635. $wood10 moveWest 32
  636. waitFor $wood10
  637. $wood10 playsound impact/explosion/track65.wav 1.0
  638. end
  639.  
  640. wood11_thread:
  641.  
  642. $wood11 time .5
  643.  
  644. $wood11 ontouch wood11_sequence
  645. pause
  646.  
  647. wood11_sequence:
  648. $wood11 notouch
  649. $wood11 notsolid
  650. $wood11 playsound environment/woodcreak/crkngwds.wav 1.0
  651. $wood11 moveDown 200
  652. $wood11 moveWest 32
  653. $wood11 rotateYup 10
  654. waitFor $wood11
  655. $wood11 playsound impact/explosion/track65.wav 1.0
  656. end
  657.  
  658. wood12_thread:
  659.  
  660. $wood12 time .5
  661.  
  662. $wood12 ontouch wood12_sequence
  663. pause
  664.  
  665. wood12_sequence:
  666. $wood12 notouch
  667. $wood12 notsolid
  668. $wood12 playsound environment/woodcreak/crkngwds.wav 1.0
  669. $wood12 moveDown 200
  670. waitFor $wood12
  671. $wood12 playsound impact/explosion/track65.wav 1.0
  672. end
  673.  
  674. wood13_thread:
  675.  
  676. $wood13 time .5
  677.  
  678. $wood13 ontouch wood13_sequence
  679. pause
  680.  
  681. wood13_sequence:
  682. $wood13 notouch
  683. $wood13 notsolid
  684. $wood13 playsound environment/woodcreak/crkngwds.wav 1.0
  685. $wood13 moveDown 200
  686. waitFor $wood13
  687. $wood13 playsound impact/explosion/track65.wav 1.0
  688. end
  689.  
  690. wood14_thread:
  691.  
  692. $wood14 time .5
  693.  
  694. $wood14 ontouch wood14_sequence
  695. pause
  696.  
  697. wood14_sequence:
  698. $wood14 notouch
  699. $wood14 notsolid
  700. $wood14 playsound environment/woodcreak/crkngwds.wav 1.0
  701. $wood14 moveDown 200
  702. waitFor $wood14
  703. $wood14 playsound impact/explosion/track65.wav 1.0
  704. end
  705.  
  706. wood15_thread:
  707.  
  708. $wood15 time .5
  709.  
  710. $wood15 ontouch wood15_sequence
  711. pause
  712.  
  713. wood15_sequence:
  714. $wood15 notouch
  715. $wood15 notsolid
  716. $wood15 playsound environment/woodcreak/crkngwds.wav 1.0
  717. $wood15 moveDown 200
  718. $wood15 moveWest 8
  719. $wood15 moveNorth 12
  720. waitFor $wood15
  721. $wood15 playsound impact/explosion/track65.wav 1.0
  722. end
  723.  
  724. wood16_thread:
  725.  
  726. $wood16 time .5
  727.  
  728. $wood16 ontouch wood16_sequence
  729. pause
  730.  
  731. wood16_sequence:
  732. $wood16 notouch
  733. $wood16 notsolid
  734. $wood16 playsound environment/woodcreak/crkngwds.wav 1.0
  735. $wood16 moveDown 200
  736. waitFor $wood16
  737. $wood16 playsound impact/explosion/track65.wav 1.0
  738. end
  739.  
  740. wood17_thread:
  741.  
  742. $wood17 time .5
  743.  
  744. $wood17 ontouch wood17_sequence
  745. pause
  746.  
  747. wood17_sequence:
  748. $wood17 notouch
  749. $wood17 notsolid
  750. $wood17 playsound environment/woodcreak/crkngwds.wav 1.0
  751. $wood17 moveDown 200
  752. waitFor $wood17
  753. $wood17 playsound impact/explosion/track65.wav 1.0
  754. end
  755.  
  756. wood18_thread:
  757.  
  758. $wood18 time .5
  759.  
  760. $wood18 ontouch wood18_sequence
  761. pause
  762.  
  763. wood18_sequence:
  764. $wood18 notouch
  765. $wood18 notsolid
  766. $wood18 playsound environment/woodcreak/crkngwds.wav 1.0
  767. $wood18 moveDown 200
  768. $wood18 moveEast 8
  769. $wood18 moveNorth 16
  770. waitFor $wood18
  771. $wood18 playsound impact/explosion/track65.wav 1.0
  772. end
  773.  
  774. wood19_thread:
  775.  
  776. $wood19 time .5
  777.  
  778. $wood19 ontouch wood19_sequence
  779. pause
  780.  
  781. wood19_sequence:
  782. $wood19 notouch
  783. $wood19 notsolid
  784. $wood19 playsound environment/woodcreak/crkngwds.wav 1.0
  785. $wood19 moveDown 200
  786. $wood19 moveWest 32
  787. waitFor $wood19
  788. $wood19 playsound impact/explosion/track65.wav 1.0
  789. end
  790.  
  791.  
  792. //===================================
  793. //===================================
  794. //===================================
  795. //===================================
  796.  
  797.  
  798.  
  799. large_barrel_thread:
  800. $brick_explode1 time .7
  801. $brick_explode2 time .7
  802. $brick_explode3 time .7
  803. $brick_explode4 time .7
  804. $brick_explode5 time .7
  805. $brick_explode6 time .7
  806. $brick_explode7 time .7
  807. $brick_explode8 time .7
  808.  
  809. $large_barrel_portal close
  810.  
  811. $large_barrels ondamage large_barrel_sequence
  812. pause
  813.  
  814. large_barrel_sequence:
  815. $large_barrels nodamage
  816. $large_barrels trigger $barrel_explosion
  817. $large_barrels playsound impact/explosion/lrg1.wav 1.0
  818. $large_barrels shatter "0 0 0" 100 20 40 .1 0
  819. $large_barrels_nearby_boxes shatter "0 0 0" 100 20 40 0.1 0
  820. wait .1
  821. $large_barrels shatter "0 0 0" 100 20 40 .1 0
  822. $large_barrels_nearby_boxes shatter "0 0 0" 100 20 40 0.1 0
  823. $large_barrels_nearby_boxes remove
  824. $large_barrels remove
  825. $large_barrel_portal open
  826. wait .1
  827.  
  828. $brick_explode1 moveWest 300
  829. $brick_explode1 rotateYdown 180
  830. $brick_explode1 rotateYdown 180
  831.  
  832. $brick_explode2 shatter "0 0 0" 100 30 50 .5 0
  833. $brick_explode2 moveWest 256
  834. $brick_explode2 moveSouth 64
  835. $brick_explode2 rotateYup 180
  836.  
  837. $brick_explode3 shatter "0 0 0" 100 30 50 .5 0
  838. $brick_explode3 moveWest 256
  839. $brick_explode3 moveDown 256
  840. $brick_explode3 moveNorth 64
  841. $brick_explode3 rotateYdown 180
  842.  
  843. $brick_explode4 shatter "0 0 0" 100 30 50 .5 0
  844. $brick_explode4 moveWest 256
  845. $brick_explode4 moveDown 256
  846. $brick_explode4 moveSouth 64
  847. $brick_explode4 rotateYup 120
  848.  
  849. $brick_explode5 moveWest 300
  850. $brick_explode5 moveDown 256
  851. $brick_explode5 moveNorth 32
  852. $brick_explode5 rotateYdown 120
  853.  
  854. $brick_explode6 moveWest 300
  855. $brick_explode6 moveDown 256
  856. $brick_explode6 moveSouth 32
  857. $brick_explode6 rotateYup 180
  858.  
  859. $brick_explode7 moveWest 256
  860. $brick_explode7 moveDown 64
  861. $brick_explode7 moveNorth 32
  862. $brick_explode7 rotateYdown 60
  863.  
  864. $brick_explode8 moveWest 256
  865. $brick_explode8 moveDown 64
  866. $brick_explode8 moveSouth 32
  867. $brick_explode8 rotateYup 90
  868.  
  869. waitFor $brick_explode8
  870.  
  871. $brick_explode1 notsolid
  872. $brick_explode1 hide
  873. $brick_explode2 notsolid
  874. $brick_explode2 hide
  875. $brick_explode3 notsolid
  876. $brick_explode3 hide
  877. $brick_explode4 notsolid
  878. $brick_explode4 hide
  879. $brick_explode5 notsolid
  880. $brick_explode5 hide
  881. $brick_explode6 notsolid
  882. $brick_explode6 hide
  883. $brick_explode7 notsolid
  884. $brick_explode7 hide
  885. $brick_explode8 notsolid
  886. $brick_explode8 hide
  887.  
  888. end
  889.  
  890. //=======================================
  891.  
  892. beam_fall_thread:
  893.  
  894. $beam1 time 1
  895. $beam2 time 1
  896.  
  897. $beam1 ontrigger beam_fall_sequence
  898. pause
  899.  
  900. beam_fall_sequence:
  901. $beam1 playsound impact/metal.wav 4
  902. $beam1 notrigger
  903. $beam1 rotateXdown 42
  904. waitFor $beam1
  905. $beam1 playsound impact/metal.wav 4
  906. wait .2
  907.  
  908. $beam1 time .5
  909. $beam2 time .5
  910. $beam2 rotateXdown 29
  911. $beam1 rotateXdown 15
  912. waitFor $beam2
  913.  
  914. //$beam2 time 1
  915.  
  916. $beam2 rotateXdown 30
  917. waitFor $beam2
  918. $beam1 playsound impact/metal.wav 4
  919. thread dialog::jc_wrecking_crew
  920. $beam1 notsolid
  921. $beam2 notsolid
  922. $beam1_clipper solid
  923. $beam2_clipper solid
  924.  
  925. end
  926.  
  927. //=======================================
  928.  
  929.  
  930. flood1_thread:
  931.  
  932. level.ValveBroke = 0
  933.  
  934. $beam_fall3 moveSouth 64
  935. $beam_fall4 moveSouth 64
  936. waitFor $beam_fall4
  937.  
  938. $beam_fall3 rotateYupto 6
  939. $beam_fall4 rotateYupto 6
  940. waitFor $beam_fall4
  941.  
  942. $flood1 time .5
  943. $flood2 time 2
  944. $flood2 moveDown 248
  945. waitFor $flood2
  946. $flood1 notsolid
  947. $flood1 hide
  948. $flood2 hide
  949.  
  950. $beam_fall3 time 5
  951. $beam_fall4 time 5
  952.  
  953. BeamWaiting_Loop:
  954. local.BeamRotation = 0
  955. $beam_fall3 phssound misc/metcreak.wav 4
  956. $beam_fall4 phssound misc/metcreak.wav 4
  957. $beam_fall3 rotateYupto 12
  958. $beam_fall4 rotateYupto 12
  959. waitFor $beam_fall4
  960. local.BeamRotation = 1
  961. $beam_fall3 phssound misc/metcreak.wav 4
  962. $beam_fall4 phssound misc/metcreak.wav 4
  963. $beam_fall3 rotateYdownto -12
  964. $beam_fall4 rotateYdownto -12
  965. waitFor $beam_fall4
  966. $beam_fall3 ondamage flood1_sequence
  967. $beam_fall4 ondamage flood1_sequence
  968. goto BeamWaiting_Loop
  969.  
  970. flood1_sequence:
  971. $beam_fall3 nodamage
  972. $beam_fall4 nodamage
  973.  
  974. $beam_fall3 time .3
  975. $beam_fall4 time .3
  976.  
  977. $beam_fall3 moveDown 100
  978. $beam_fall4 moveDown 100
  979. waitFor $beam_fall4
  980.  
  981. $beam_fall3 moveDown 200
  982. $beam_fall4 moveDown 200
  983. waitFor $beam_fall4
  984.  
  985. $beam_fall3 moveDown 400
  986. $beam_fall4 moveDown 400
  987. waitFor $beam_fall4
  988.  
  989. local.BeamRotation ifequal 0 $beam_fall3 rotateYdownto 0
  990. local.BeamRotation ifequal 0 $beam_fall4 rotateYdownto 0
  991. local.BeamRotation ifequal 1 $beam_fall3 rotateYupto 0
  992. local.BeamRotation ifequal 1 $beam_fall4 rotateYupto 0
  993. $beam_fall3 moveDown 732
  994. $beam_fall4 moveDown 732
  995. waitFor $beam_fall4
  996.  
  997. $beam_fall4 playsound impact/metal.wav 4
  998.  
  999. $beam_fall3 rotateZup 9
  1000. $beam_fall4 rotateZup 8
  1001. $beam_fall3 moveDown 4
  1002. $beam_fall4 moveDown 4
  1003. $beam_fall4 rotateXup 30
  1004. $beam_fall3 moveWest 16
  1005. $beam_fall4 moveEast 32
  1006. $valve1 rotateXup 45
  1007. waitFor $valve1
  1008. level.PipeDown = 1
  1009. level.ValveBroke = 1
  1010. $beam_fall3 playsound impact/metal.wav 4
  1011.  
  1012. trigger $valve_spray
  1013. $flood1 show
  1014. $flood1 moveSouth 24
  1015. waitFor $flood1
  1016. trigger $valve_spray_sound
  1017. $flood2 show
  1018. $flood2 moveUp 10
  1019. waitFor $flood2
  1020. $flood2 time 6
  1021. $flood2 moveUp 32
  1022. thread dialog::jc_swim_pool
  1023. waitFor $flood2
  1024. $flood1 hide
  1025. $flood2 time 16
  1026. $flood2 moveUp 190
  1027. wait 8
  1028. trigger $spawn_pipethug
  1029. wait 0.1
  1030. $pipethug thread AI_PipeThug
  1031. end
  1032.  
  1033. //=======================================
  1034.  
  1035. door_break_thread:
  1036.  
  1037. level.player_in_vehicle ifequal 0 goto door_do_not_break
  1038. level.DoorBroken ifequal 1 goto door_do_not_break
  1039.  
  1040. $door_break1 time .7
  1041. $door_break2 time .7
  1042. $door_break3 time .7
  1043. $brick1 time .7
  1044. $brick2 time .7
  1045. $brick3 time .7
  1046. $brick4 time .7
  1047. $brick5 time .7
  1048. $brick6 time .7
  1049. $brick7 time .7
  1050. $brick8 time .7
  1051. $brick9 time .7
  1052. $brick10 time .7
  1053. $brick11 time .7
  1054. $brick12 time .7
  1055. $brick13 time .7
  1056. $brick14 time .7
  1057. $brick15 time .7
  1058. $brick16 time .7
  1059.  
  1060. door_break_sequence:
  1061. level.DoorBroken = 1
  1062. $door_break_portal open
  1063.  
  1064. $door_break1 notsolid
  1065. $door_break2 notsolid
  1066. $door_break3 notsolid
  1067. $brick1 notsolid
  1068. $brick2 notsolid
  1069. $brick3 notsolid
  1070. $brick4 notsolid
  1071. $brick5 notsolid
  1072. $brick6 notsolid
  1073. $brick7 notsolid
  1074. $brick8 notsolid
  1075. $brick9 notsolid
  1076. $brick10 notsolid
  1077. $brick11 notsolid
  1078. $brick12 notsolid
  1079. $brick13 notsolid
  1080. $brick14 notsolid
  1081. $brick15 notsolid
  1082. $brick16 notsolid
  1083.  
  1084. $brick4 hide
  1085.  
  1086. $door_break3 playsound "environment/rockfall/hvyrckss.wav" 4
  1087. $brick10 playsound "environment/rockfall/hvyrckss.wav" 4
  1088. $brick5 playsound "environment/rockfall/hvyrckss.wav" 4
  1089. $door_break3 shatter "0 0 0" 50 30 50 .5 0
  1090. $brick10 shatter "0 0 0" 50 30 50 .5 0
  1091. $brick5 shatter "0 0 0" 50 30 50 .5 0
  1092.  
  1093. $brick1 moveSouth 410
  1094. $brick2 moveSouth 390
  1095. $brick3 moveSouth 356
  1096. $brick5 moveSouth 356
  1097. $brick6 moveSouth 324
  1098. $brick7 moveSouth 300
  1099. $brick8 moveSouth 280
  1100. $brick9 moveSouth 270
  1101. $brick10 moveSouth 220
  1102. $brick11 moveSouth 250
  1103. $brick12 moveSouth 160
  1104. $brick14 moveSouth 130
  1105. $brick13 moveSouth 200
  1106. $brick15 moveSouth 150
  1107. $brick16 moveSouth 135
  1108.  
  1109. $brick1 rotateZup 270
  1110. $brick2 rotateZup 270
  1111. $brick3 rotateZup 270
  1112. $brick5 rotateZup 270
  1113. $brick6 rotateZup 270
  1114. $brick7 rotateZup 270
  1115. $brick8 rotateZup 270
  1116. $brick9 rotateZup 270
  1117. $brick10 rotateZup 270
  1118. $brick11 rotateZup 270
  1119. $brick12 rotateZup 90
  1120. $brick13 rotateZup 90
  1121. $brick14 rotateZup 90
  1122. $brick15 rotateZup 90
  1123.  
  1124. $brick1 moveDown 98
  1125. $brick2 moveDown 98
  1126. $brick3 moveDown 92
  1127. $brick5 moveDown 92
  1128. $brick6 moveDown 74
  1129. $brick7 moveDown 74
  1130. $brick8 moveDown 68
  1131. $brick9 moveDown 68
  1132. $brick10 moveDown 46
  1133. $brick11 moveDown 52
  1134. $brick12 moveDown 38
  1135. $brick13 moveDown 28
  1136. $brick14 moveDown 22
  1137. $brick15 moveDown 16
  1138.  
  1139. $brick1 moveEast 16
  1140. $brick3 moveEast 32
  1141. $brick6 moveEast 48
  1142. $brick8 moveEast 40
  1143. $brick10 moveEast 64
  1144. $brick13 moveEast 70
  1145. $brick15 moveEast 96
  1146. $brick16 moveEast 20
  1147.        
  1148. //$brick2 moveWest
  1149. $brick5 moveWest 16
  1150. $brick7 moveWest 16
  1151. //$brick9 moveWest
  1152. $brick11 moveWest 16
  1153. $brick12 moveWest 16
  1154. //$brick14 moveWest
  1155.  
  1156. $brick16 rotateYdown 120
  1157. $brick3 rotateYdown 120
  1158. $brick6 rotateYdown 160
  1159. $brick10 rotateYdown 130
  1160. $brick13 rotateYdown 150
  1161.  
  1162. $door_break3 rotateZup 90
  1163. $door_break3 moveDown 32
  1164. $door_break3 moveSouth 74
  1165.  
  1166. $door_break2 rotateYdown 180
  1167. $door_break2 rotateZup 90
  1168. $door_break2 moveSouth 224
  1169. $door_break2 moveDown 64
  1170.  
  1171. $door_break1 rotateZup 90
  1172. $door_break1 rotateYup 180
  1173. $door_break1 moveSouth 180
  1174. $door_break1 moveDown 68
  1175.  
  1176. waitFor $door_break1
  1177. thread dialog::jc_where_that_go
  1178.  
  1179. door_do_not_break:
  1180.  
  1181. end
  1182.  
  1183. //====================================
  1184.  
  1185. pipe1_thread:
  1186. $pipe1_clip notsolid
  1187. $pipe1 time 2
  1188. $pipe1 setdamage 10000
  1189. $pipe1 ontrigger pipe1_sequence
  1190. pause
  1191.  
  1192. pipe1_sequence:
  1193. music suprise
  1194. $pipe1 notrigger
  1195.  
  1196. $pipe1 playsound "environment/rockfall/hvyrcks3.wav" 4
  1197. $pipe1 rotateXdown 25
  1198. $pipe1 moveWest 32
  1199. waitFor $pipe1
  1200.  
  1201. $pipe1 time .4
  1202.  
  1203. $pipe1 moveWest 128
  1204. $pipe1 moveDown 64
  1205. waitFor $pipe1
  1206.  
  1207. $pipe1 moveWest 236
  1208. $pipe1 moveDown 160
  1209. waitFor $pipe1
  1210.  
  1211. $pipe1 time .3
  1212.  
  1213. $pipe1 moveWest 88
  1214. $pipe1 rotateXdown 15
  1215. waitFor $pipe1
  1216.  
  1217. $pipe1 rotateXup 50
  1218. waitFor $pipe1
  1219.  
  1220. $pipe1 time .4
  1221.  
  1222. $pipe1 rotateXdown 10
  1223. waitFor $pipe1
  1224.  
  1225. $pipe1 playsound "environment/rockfall/sldngrck.wav" 4
  1226. $pipe1 notsolid
  1227. $pipe1_clip solid
  1228.  
  1229. end
  1230.  
  1231.  
  1232. //=============================================
  1233.  
  1234.  
  1235. generator_thread:
  1236.  
  1237. game.csite_generator ifequal 0 game.csite_generator = 1
  1238. local.generator_speed = 0
  1239.  
  1240. $basement_lights group light -Fullbright
  1241. $generator1 time .1
  1242. $generator2 time .1
  1243. $generator3 time .1
  1244. $generator4 time .1
  1245.  
  1246. $generator_handle time .5
  1247. $generator_handle rotateZdown 20
  1248. waitFor $generator_handle
  1249.  
  1250. $generator_handle onuse generator_sequence
  1251. pause
  1252.  
  1253. generator_sequence:
  1254. music suspense
  1255. $generator_handle nouse
  1256. game.csite_generator = 2
  1257.  
  1258. $generator_handle rotateZup 40
  1259. waitFor $generator_handle
  1260.  
  1261. $generator_handle playsound environment/levelsnds/csite/cnstlp7.wav 1.0
  1262.  
  1263. $generator_handle trigger $generator1
  1264. $generator_handle trigger $generator2
  1265. generator_speed_up:
  1266. $generator1 rotateZ local.generator_speed
  1267. wait .2
  1268. local.generator_speed += 20
  1269. local.generator_speed iflessequal 360 goto generator_speed_up
  1270. $generator_on lightstyle "Laammmmppzppzzp"
  1271.  
  1272. Generator_WaitingLoop:
  1273. $basement_lights group light +Fullbright
  1274. level.SkillLevel ifequal 0 $generator_waiting_easy ontrigger Generator_BlowUp
  1275. level.SkillLevel ifequal 1 $generator_waiting_medium ontrigger Generator_BlowUp
  1276. level.SkillLevel ifgreaterequal 2 $generator_waiting_hard ontrigger Generator_BlowUp
  1277. $generator1 shatter "0 0 0" 70 30 50 .1 0
  1278. $generator2 shatter "0 0 0" 70 30 50 .1 0
  1279. $generator1 playsound impact/explosion/lrg1.wav 1.0
  1280. wait 4
  1281. goto Generator_WaitingLoop
  1282.  
  1283. Generator_BlowUp:
  1284.  
  1285. $generator_handle trigger $generator2
  1286. $generator1 playsound impact/comp_explode/cmpmx4.wav 1.0
  1287.  
  1288. $generator1 time .7
  1289. $generator2 time .7
  1290.  
  1291. $generator1 rotateXdown 20
  1292. $generator2 rotateXdown 20
  1293. waitFor $generator2
  1294.  
  1295. $generator_on lightstyle "La"
  1296. $basement_lights group light -Fullbright
  1297. $generator_handle trigger $generator_explode
  1298. music surprise
  1299.  
  1300. $generator1 time .5
  1301. $generator2 time .5
  1302.  
  1303. $generator1 moveDown 64
  1304. $generator2 moveDown 64
  1305. $generator1 rotateXdown 30
  1306. $generator2 rotateXdown 30
  1307. waitFor $generator2
  1308.  
  1309. thread dialog::jc_scared_dark
  1310. $generator_handle trigger $generator1
  1311.  
  1312. $generator1 time 1
  1313. $generator2 time 1
  1314.  
  1315. $generator_handle stopsound
  1316.  
  1317. $generator1 moveDown 400
  1318. $generator2 moveDown 400
  1319. $generator_floor moveDown 400
  1320. waitFor $generator_floor
  1321.  
  1322. $generator1 rotateZ 0
  1323.  
  1324. $generator1 remove
  1325. $generator2 remove
  1326. $generator_floor remove
  1327.  
  1328. end
  1329.  
  1330. //===================
  1331.  
  1332. generator_shake_thread:
  1333.  
  1334. $generator2 ontrigger generator_shake_sequence
  1335. pause
  1336.  
  1337. generator_shake_sequence:
  1338. $generator2 notrigger
  1339.  
  1340. $generator2 ontrigger generator_shake_stop
  1341.  
  1342. generator_shake_loop:
  1343. $generator1 moveNorth 1
  1344. $generator2 moveNorth 1
  1345. $generator3 moveNorth 1
  1346. $generator4 moveNorth 1
  1347. waitFor $generator4
  1348. $generator1 moveSouth 1
  1349. $generator2 moveSouth 1
  1350. $generator3 moveSouth 1
  1351. $generator4 moveSouth 1
  1352. waitFor $generator4
  1353. goto generator_shake_loop
  1354.  
  1355.  
  1356. generator_shake_stop:
  1357. $generator2 notrigger
  1358. end
  1359.  
  1360. //===================
  1361.  
  1362. generator_light_thread:
  1363.  
  1364. $generator_light lightstyle "a"
  1365.  
  1366. $generator1 ontrigger generator_light_sequence
  1367. pause
  1368.  
  1369. generator_light_sequence:
  1370. $generator1 notrigger
  1371.  
  1372. $generator_light lightstyle "Lfmfmfmfmfm"
  1373.  
  1374. $generator1 ontrigger generator_light_off
  1375. pause
  1376.  
  1377. generator_light_off:
  1378. $generator_light lightstyle "a"
  1379. end
  1380.  
  1381.  
  1382. //-------------------------------------------------------
  1383. //-------------------------------------------------------
  1384. // Wieder Additions
  1385. //-------------------------------------------------------
  1386. //-------------------------------------------------------
  1387.  
  1388. //---------------------------------------
  1389. // Csite Mission Computer Setup
  1390. //---------------------------------------
  1391. MissionComputer:
  1392. //0 not accomplished 1 = success 2 = fail 3 = not available
  1393. %missioncon conlayout "xv -72 yv 76 fc 0.6 0.6 1 1 string \"Construction Site\""
  1394. %missioncon conapplayout "xv -120 yv 60 fc 0.4 0.4 0.8 1 string \"Primary Objective(s):\""
  1395.  
  1396. level.PObjective1 ifequal 0 %missioncon conapplayout "xv -118 yv 48 spicn b_blank 0.5 0.5 xv -116 yv 48 fc 0.7 0.7 0.7 1 string \" Continue Chasing Mancini\""
  1397. level.PObjective2 ifequal 0 %missioncon conapplayout "xv -118 yv 36 spicn b_blank 0.5 0.5 xv -116 yv 36 fc 0.7 0.7 0.7 1 string \" Eliminate Hostile Forces\""
  1398.  
  1399. level.PObjective1 ifequal 1 %missioncon conapplayout "xv -118 yv 48 spicn b_checked 0.5 0.5 xv -116 yv 48 fc 0.2 0.2 0.2 1 string \" Continue Chasing Mancini\""
  1400. level.PObjective2 ifequal 1 %missioncon conapplayout "xv -118 yv 36 spicn b_checked 0.5 0.5 xv -116 yv 36 fc 0.2 0.2 0.2 1 string \" Eliminate Hostile Forces\""
  1401.  
  1402. level.PObjective1 ifequal 2 %missioncon conapplayout "xv -118 yv 48 spicn b_notchecked 0.5 0.5 xv -116 yv 48 fc 0.2 0.2 0.2 1 string \" Continue Chasing Mancini\""
  1403. level.PObjective2 ifequal 2 %missioncon conapplayout "xv -118 yv 36 spicn b_notchecked 0.5 0.5 xv -116 yv 36 fc 0.2 0.2 0.2 1 string \" Eliminate Hostile Forces\""
  1404.  
  1405. level.PObjective1 ifequal 3 %missioncon conapplayout "xv -116 yv 48 fc 0.2 0.2 0.2 1 string \" ----------------------------\""
  1406. level.PObjective2 ifequal 3 %missioncon conapplayout "xv -116 yv 36 fc 0.2 0.2 0.2 1 string \" ----------------------------\""
  1407.  
  1408. %missioncon conapplayout "xv -120 yv 20 fc 0.4 0.4 0.8 1 string \"Secondary Objective(s):\""
  1409.  
  1410. level.SObjective1 ifequal 0 %missioncon conapplayout "xv -118 yv 8 spicn b_blank 0.5 0.5 xv -116 yv 8 fc 0.7 0.7 0.7 1 string \" Find Incriminating Evidence\""
  1411. level.SObjective1 ifequal 1 %missioncon conapplayout "xv -118 yv 8 spicn b_checked 0.5 0.5 xv -116 yv 8 fc 0.2 0.2 0.2 1 string \" Find Incriminating Evidence\""
  1412. level.SObjective1 ifequal 2 %missioncon conapplayout "xv -118 yv 8 spicn b_notchecked 0.5 0.5 xv -116 yv 8 fc 0.2 0.2 0.2 1 string \" Find Incriminating Evidence\""
  1413. level.SObjective1 ifequal 3 %missioncon conapplayout "xv -116 yv 8 fc 0.2 0.2 0.2 1 string \" ----------------------------\""
  1414.  
  1415. level.SObjective2 ifequal 0 %missioncon conapplayout "xv -118 yv -4 spicn b_blank 0.5 0.5 xv -116 yv -4 fc 0.7 0.7 0.7 1 string \" Rescue Remaining Hostages\""
  1416. level.SObjective2 ifequal 1 %missioncon conapplayout "xv -118 yv -4 spicn b_checked 0.5 0.5 xv -116 yv -4 fc 0.2 0.2 0.2 1 string \" Rescue Remaining Hostages\""
  1417. level.SObjective2 ifequal 2 %missioncon conapplayout "xv -118 yv -4 spicn b_notchecked 0.5 0.5 xv -116 yv -4 fc 0.2 0.2 0.2 1 string \" Rescue Remaining Hostages\""
  1418. level.SObjective2 ifequal 3 %missioncon conapplayout "xv -116 yv -4 fc 0.2 0.2 0.2 1 string \" ----------------------------\""
  1419.  
  1420. end
  1421.  
  1422. //---------------------------------------------------------------------------
  1423. // Finished Level Update
  1424. // This is a pretty basic one. Some levels have ABOs that will affect which
  1425. // one you load, what settings are, etc. However for the most part this is
  1426. // how they all will look. I think you'll find that this is actually
  1427. // easier than the mission computer. The distance between lines is also
  1428. // 10 now for easy math. ;)
  1429. //---------------------------------------------------------------------------
  1430. LevelComplete:
  1431.  
  1432. // Clears any items in the player's inventory that need to be removed
  1433. thread global/universal_script.scr::ClearInventory
  1434.  
  1435. // Any objectives that haven't been set to Success or Fail should be set
  1436. // here. This usually is for things like "Eliminate All Hostile Forces"
  1437. // All Objectives need to be set to Success or Fail by the end of the
  1438. // map. This should be automatic for the most part but if you
  1439. // Find any that aren't, we need to figure out what to do with them.
  1440. level.PObjective1 = 1
  1441. level.PObjective2 = 1
  1442. level.SObjective1 ifnotequal 1 level.SObjective1 = 2
  1443. level.SObjective2 ifnotequal 1 level.SObjective2 = 2
  1444.  
  1445. // Set up the Primary Objectives
  1446. local.IMString string "oxl 2 oyt -32 fc 0.53 0.53 0.83 1 string \"Primary Objective(s):\""
  1447.  
  1448. level.PObjective1 ifequal 1 local.IMString append "oxl 6 oyt -42 spicn b_checked 0.5 0.5 oxl 18 oyt -42 fc 0.6 0.6 0.6 1 string \"Continue Chasing Mancini\""
  1449. level.PObjective2 ifequal 1 local.IMString append "oxl 6 oyt -52 spicn b_checked 0.5 0.5 oxl 18 oyt -52 fc 0.6 0.6 0.6 1 string \"Eliminate Hostile Forces\""
  1450.  
  1451. level.PObjective1 ifequal 2 local.IMString append "oxl 6 oyt -42 spicn b_notchecked 0.5 0.5 oxl 18 oyt -42 fc 0.6 0.6 0.6 1 string \"Continue Chasing Mancini\""
  1452. level.PObjective2 ifequal 2 local.IMString append "oxl 6 oyt -52 spicn b_notchecked 0.5 0.5 oxl 18 oyt -52 fc 0.6 0.6 0.6 1 string \"Eliminate Hostile Forces\""
  1453.  
  1454. // Set up the Secondary Objectives
  1455. local.IMString append "oxl 2 oyt -62 fc 0.53 0.53 0.83 1 string \"Secondary Objective(s):\""
  1456.  
  1457. level.SObjective1 ifequal 1 local.IMString append "oxl 6 oyt -72 spicn b_checked 0.5 0.5 oxl 18 oyt -72 fc 0.6 0.6 0.6 1 string \"Find Incriminating Evidence\""
  1458. level.SObjective2 ifequal 1 local.IMString append "oxl 6 oyt -82 spicn b_checked 0.5 0.5 oxl 18 oyt -82 fc 0.6 0.6 0.6 1 string \"Rescue Remaining Hostages\""
  1459.  
  1460. level.SObjective1 ifequal 2 local.IMString append "oxl 6 oyt -72 spicn b_notchecked 0.5 0.5 oxl 18 oyt -72 fc 0.6 0.6 0.6 1 string \"Find Incriminating Evidence\""
  1461. level.SObjective2 ifequal 2 local.IMString append "oxl 6 oyt -82 spicn b_notchecked 0.5 0.5 oxl 18 oyt -82 fc 0.6 0.6 0.6 1 string \"Rescue Remaining Hostages\""
  1462.  
  1463. // Send over the information that Scott needs to load the proper intermission
  1464. loadintermission "layouts/im_layouts/csite_to_subway_cinema"
  1465. intermissionlayout local.IMString
  1466.  
  1467. end
  1468.  
  1469. //---------------------------------------------------------------------------
  1470. // Near CSite Exit 1
  1471. //---------------------------------------------------------------------------
  1472. csite_exit1:
  1473. game.csite_exit = 0
  1474. end
  1475.  
  1476. //---------------------------------------------------------------------------
  1477. // Near CSite Exit 2
  1478. //---------------------------------------------------------------------------
  1479. csite_exit2:
  1480. game.csite_exit = 1
  1481. end
  1482.  
  1483. //---------------------------------------------------------------------------
  1484. // Using the Valve in the pool area
  1485. //---------------------------------------------------------------------------
  1486. ValveInPool:
  1487.  
  1488. ValveLoop:
  1489. $valve1 onuse ValveMessage
  1490. pause
  1491.  
  1492. ValveMessage:
  1493. level.ValveBroke ifequal 0 thread dialog::blade_valve_stuck
  1494. goto ValveLoop
  1495.  
  1496. end
  1497.  
  1498. //---------------------------------------------------------------------------
  1499. // Duke Secret Portal Open
  1500. //---------------------------------------------------------------------------
  1501. OpenDukeSecretPortal:
  1502. $duke_secret_portal open
  1503. end
  1504.  
  1505. //---------------------------------------------------------------------------
  1506. // Duke Secret Portal Close
  1507. //---------------------------------------------------------------------------
  1508. CloseDukeSecretPortal:
  1509. $duke_secret_portal close
  1510. end
  1511.  
  1512. //---------------------------------------------------------------------------
  1513. // JC Taunting Blade when he goes after the chick #1
  1514. //---------------------------------------------------------------------------
  1515. JCDoorTaunt1:
  1516.  
  1517. level.Hostage1State ifequal 0 goto JCDoorTaunt1_Blade
  1518. level.Hostage1Taunted ifequal 1 goto JCDoorTaunt1_Blade
  1519. level.Hostage1Taunted = 1
  1520. thread dialog::jc_what_thinking
  1521. goto JCDoorTaunt1_End
  1522.  
  1523. JCDoorTaunt1_Blade:
  1524. thread global/universal_script.scr::blade_no_reason
  1525. goto JCDoorTaunt1_End
  1526.  
  1527. JCDoorTaunt1_End:
  1528.  
  1529. end
  1530.  
  1531. //---------------------------------------------------------------------------
  1532. // The Crane
  1533. //---------------------------------------------------------------------------
  1534. Crane:
  1535. $beam1_clipper notsolid
  1536. $beam2_clipper notsolid
  1537. $crane bind $crane_clip
  1538. $crane_panel bind $crane_clip
  1539. wait 0.1
  1540.  
  1541. $wreckingball bind $crane_clip
  1542. wait 0.1
  1543.  
  1544. $crane ambientsound "vehicle/bulldoze/idle.wav"
  1545. $crane_clip ambientsound "vehicle/bulldoze/idle.wav"
  1546. $crane_panel ambientsound "vehicle/bulldoze/idle.wav"
  1547. $crane_clip time 4
  1548. $crane_clip rotateYup -30
  1549. waitFor $crane_clip
  1550.  
  1551. $crane_panel onuse MoveCrane
  1552. pause
  1553.  
  1554. MoveCrane:
  1555. $crane ambientsound "vehicle/bulldoze/run.wav"
  1556. $crane_clip ambientsound "vehicle/bulldoze/run.wav"
  1557. $crane_panel ambientsound "vehicle/bulldoze/run.wav"
  1558. $crane_clip rotateYup 120
  1559. wait 3.2
  1560. trigger $beam1
  1561. wait 0.8
  1562. $crane ambientsound "vehicle/bulldoze/idle.wav"
  1563. $crane_clip ambientsound "vehicle/bulldoze/idle.wav"
  1564. $crane_panel ambientsound "vehicle/bulldoze/idle.wav"
  1565.  
  1566. end
  1567.  
  1568. //---------------------------------------------------------------------------
  1569. // Roof Hostage Is Safe
  1570. //---------------------------------------------------------------------------
  1571. RoofHostageSafe:
  1572.  
  1573. level.HostageCount += 1
  1574. level.HostageCount ifless 2 goto RoofHostageSafe_End
  1575. level.SObjective2 = 1
  1576. thread MissionComputer
  1577. thread global/universal_script.scr::SObjectiveComplete
  1578. goto RoofHostageSafe_End
  1579.  
  1580. RoofHostageSafe_End:
  1581.  
  1582. end
  1583.  
  1584. //---------------------------------------------------------------------------
  1585. // Vator Hostage Is Safe
  1586. //---------------------------------------------------------------------------
  1587. VatorHostageSafe:
  1588.  
  1589. level.HostageCount += 1
  1590. level.HostageCount ifless 2 goto VatorHostageSafe_End
  1591. level.SObjective2 = 1
  1592. thread MissionComputer
  1593. thread global/universal_script.scr::SObjectiveComplete
  1594. level.HostageCount ifequal 2 thread global/universal_script.scr::SObjectiveComplete
  1595. goto VatorHostageSafe_End
  1596.  
  1597. VatorHostageSafe_End:
  1598.  
  1599. end
  1600.  
  1601. //---------------------------------------------------------------------------
  1602. // Opens the areaportal for the alternate exit
  1603. //---------------------------------------------------------------------------
  1604. altexit_open:
  1605. //$door_break_portal open
  1606. end
  1607.  
  1608. //---------------------------------------------------------------------------
  1609. // Closes the areaportal for the alternate exit
  1610. //---------------------------------------------------------------------------
  1611. altexit_close:
  1612. //$door_break_portal close
  1613. end
  1614.  
  1615. //---------------------------------------------------------------------------
  1616. // Control lids for first dumpster
  1617. //---------------------------------------------------------------------------
  1618. DumpsterThread:
  1619.  
  1620. $dumpster_lid1 bind $dumpster
  1621. $dumpster_lid2 bind $dumpster
  1622. wait 0.1
  1623.  
  1624. $dumpster time 0.1
  1625. $dumpster rotateYup 15
  1626. waitFor $dumpster
  1627.  
  1628. $dumpster ontrigger Dumpster_PopOpen
  1629. pause
  1630.  
  1631. Dumpster_PopOpen:
  1632. $dumpster_lid1 playsound "environment/doors/metal/mtlcls3.wav" 2
  1633. $dumpster_lid1 time 0.4
  1634. $dumpster_lid1 rotateXdownto 245
  1635. waitFor $dumpster_lid1
  1636.  
  1637. $dumpster_lid1 playsound "environment/doors/metal/mtlclose.wav" 2
  1638. local.Lid1 = 1
  1639. local.Lid2 = 0
  1640. $dumpster_lid1 time 0.8
  1641. $dumpster_lid2 time 0.8
  1642. goto Dumpster_Wait
  1643.  
  1644. Dumpster_Wait:
  1645. $dumpster_lid1 onuse Dumpster_Lid1_Move
  1646. $dumpster_lid2 onuse Dumpster_Lid2_Move
  1647. pause
  1648.  
  1649. Dumpster_Lid1_Move:
  1650. $dumpster_lid1 playsound "environment/doors/metal/mtlcls3.wav" 2
  1651. $dumpster_lid1 nouse
  1652. $dumpster_lid2 nouse
  1653. local.Lid1 ifequal 0 $dumpster_lid1 rotateXdownto 245
  1654. local.Lid1 ifequal 1 $dumpster_lid1 rotateXupto 0
  1655. waitFor $dumpster_lid1
  1656. $dumpster_lid1 playsound "environment/doors/metal/mtlclose.wav" 2
  1657. local.Lid1 *= -1
  1658. local.Lid1 += 1
  1659. goto Dumpster_Wait
  1660.  
  1661. Dumpster_Lid2_Move:
  1662. $dumpster_lid2 playsound "environment/doors/metal/mtlcls3.wav" 2
  1663. $dumpster_lid1 nouse
  1664. $dumpster_lid2 nouse
  1665. local.Lid2 ifequal 0 $dumpster_lid2 rotateXdownto 245
  1666. local.Lid2 ifequal 1 $dumpster_lid2 rotateXupto 0
  1667. waitFor $dumpster_lid2
  1668. $dumpster_lid2 playsound "environment/doors/metal/mtlclose.wav" 2
  1669. local.Lid2 *= -1
  1670. local.Lid2 += 1
  1671. goto Dumpster_Wait
  1672.  
  1673. end
  1674.  
  1675. //---------------------------------------------------------------------------
  1676. // Control lids for second dumpster
  1677. //---------------------------------------------------------------------------
  1678. Dumpster2Thread:
  1679.  
  1680. local.Lid1 = 1
  1681. local.Lid2 = 0
  1682. $dumpster2_lid1 time 0.8
  1683. $dumpster2_lid2 time 0.8
  1684. $dumpster2_lid1 rotateXup 130
  1685. waitFor $dumpster2_lid1
  1686. goto Dumpster2_Wait
  1687.  
  1688. Dumpster2_Wait:
  1689. $dumpster2_lid1 onuse Dumpster2_Lid1_Move
  1690. $dumpster2_lid2 onuse Dumpster2_Lid2_Move
  1691. pause
  1692.  
  1693. Dumpster2_Lid1_Move:
  1694. $dumpster2_lid1 playsound "environment/doors/metal/mtlcls3.wav" 2
  1695. $dumpster2_lid1 nouse
  1696. $dumpster2_lid2 nouse
  1697. local.Lid1 ifequal 0 $dumpster2_lid1 rotateXupto 130
  1698. local.Lid1 ifequal 1 $dumpster2_lid1 rotateXdownto 0
  1699. waitFor $dumpster2_lid1
  1700. $dumpster2_lid1 playsound "environment/doors/metal/mtlclose.wav" 2
  1701. local.Lid1 *= -1
  1702. local.Lid1 += 1
  1703. goto Dumpster2_Wait
  1704.  
  1705. Dumpster2_Lid2_Move:
  1706. $dumpster2_lid2 playsound "environment/doors/metal/mtlcls3.wav" 2
  1707. $dumpster2_lid1 nouse
  1708. $dumpster2_lid2 nouse
  1709. local.Lid2 ifequal 0 $dumpster2_lid2 rotateXupto 130
  1710. local.Lid2 ifequal 1 $dumpster2_lid2 rotateXdownto 0
  1711. waitFor $dumpster2_lid2
  1712. $dumpster2_lid2 playsound "environment/doors/metal/mtlclose.wav" 2
  1713. local.Lid2 *= -1
  1714. local.Lid2 += 1
  1715. goto Dumpster2_Wait
  1716.  
  1717. end
  1718.  
  1719. //---------------------------------------------------------------------------
  1720. // Control portals in basement
  1721. //---------------------------------------------------------------------------
  1722. SpeedsPortal1:
  1723.  
  1724. SpeedsPortal1_Loop:
  1725. $generator_portal_open ontrigger SpeedsPortal1_Open
  1726. $generator_portal_close ontrigger SpeedsPortal1_Close
  1727. pause
  1728.  
  1729. SpeedsPortal1_Open:
  1730. $large_barrel_portal open
  1731. goto SpeedsPortal1_Loop
  1732.  
  1733. SpeedsPortal1_Close:
  1734. $large_barrel_portal close
  1735. goto SpeedsPortal1_Loop
  1736.  
  1737. end
  1738.  
  1739. //---------------------------------------------------------------------------
  1740. // Control thread for Broken light
  1741. //---------------------------------------------------------------------------
  1742. Generator_Flicker:
  1743.  
  1744. Generator_Flicker_Loop:
  1745. local.TimeToWait randomint 20
  1746. $generator_flicker lightstyle "Lc"
  1747. wait local.TimeToWait
  1748. $generator_flicker lightstyle "Lmmzmmz"
  1749. trigger $generator_flicker_sparks
  1750. wait 0.6
  1751. goto Generator_Flicker_Loop
  1752.  
  1753. end
  1754.  
  1755. //---------------------------------------------------------------------------
  1756. // Elevator Door Setup
  1757. //---------------------------------------------------------------------------
  1758. VatorDoorSetup:
  1759.  
  1760. $vator_door1 time 0.1
  1761. $vator_door1 moveDown 52
  1762. wait 0.2
  1763.  
  1764. $vator_door1 moveSouth 96
  1765. wait 0.2
  1766.  
  1767. $vator_door1 notsolid
  1768. $vator_door1 rotateZdown 90
  1769. $vator_door1 rotateYup 30
  1770. $vator_door2 time 0.1
  1771. $vator_door2 rotateYup 30
  1772. wait 0.1
  1773.  
  1774. $vator_door2 time 1
  1775.  
  1776. VatorDoor_Loop:
  1777. $vator_door2 rotateYup 1
  1778. waitFor $vator_door2
  1779. $vator_door2 rotateYup 2
  1780. waitFor $vator_door2
  1781. $vator_door2 rotateYup 3
  1782. waitFor $vator_door2
  1783. $vator_door2 rotateYup 2
  1784. waitFor $vator_door2
  1785. $vator_door2 rotateYup 1
  1786. waitFor $vator_door2
  1787. $vator_door2 rotateYdown 1
  1788. waitFor $vator_door2
  1789. $vator_door2 rotateYdown 2
  1790. waitFor $vator_door2
  1791. $vator_door2 rotateYdown 3
  1792. waitFor $vator_door2
  1793. $vator_door2 rotateYdown 2
  1794. waitFor $vator_door2
  1795. $vator_door2 rotateYdown 1
  1796. waitFor $vator_door2
  1797. goto VatorDoor_Loop
  1798.  
  1799. end
  1800.  
  1801. //---------------------------------------------------------------------------
  1802. // Elevator Rope 1
  1803. //---------------------------------------------------------------------------
  1804. VatorRope1:
  1805.  
  1806. $vator_rope1 time 0.2
  1807.  
  1808. VatorRope1_Loop:
  1809. $vator_rope1 moveEast 1
  1810. waitFor $vator_rope1
  1811. $vator_rope1 moveEast 2
  1812. waitFor $vator_rope1
  1813. $vator_rope1 moveEast 3
  1814. waitFor $vator_rope1
  1815. $vator_rope1 moveEast 2
  1816. waitFor $vator_rope1
  1817. $vator_rope1 moveEast 1
  1818. waitFor $vator_rope1
  1819. $vator_rope1 moveWest 1
  1820. waitFor $vator_rope1
  1821. $vator_rope1 moveWest 2
  1822. waitFor $vator_rope1
  1823. $vator_rope1 moveWest 3
  1824. waitFor $vator_rope1
  1825. $vator_rope1 moveWest 2
  1826. waitFor $vator_rope1
  1827. $vator_rope1 moveWest 1
  1828. waitFor $vator_rope1
  1829. goto VatorRope1_Loop
  1830.  
  1831. end
  1832.  
  1833. //---------------------------------------------------------------------------
  1834. // Elevator Rope 2
  1835. //---------------------------------------------------------------------------
  1836. VatorRope2:
  1837.  
  1838. $vator_rope2 time 0.5
  1839.  
  1840. VatorRope2_Loop:
  1841. $vator_rope2 moveNorth 1
  1842. waitFor $vator_rope2
  1843. $vator_rope2 moveNorth 2
  1844. waitFor $vator_rope2
  1845. $vator_rope2 moveNorth 3
  1846. waitFor $vator_rope2
  1847. $vator_rope2 moveNorth 2
  1848. waitFor $vator_rope2
  1849. $vator_rope2 moveNorth 1
  1850. waitFor $vator_rope2
  1851. $vator_rope2 moveSouth 1
  1852. waitFor $vator_rope2
  1853. $vator_rope2 moveSouth 2
  1854. waitFor $vator_rope2
  1855. $vator_rope2 moveSouth 3
  1856. waitFor $vator_rope2
  1857. $vator_rope2 moveSouth 2
  1858. waitFor $vator_rope2
  1859. $vator_rope2 moveSouth 1
  1860. waitFor $vator_rope2
  1861. goto VatorRope2_Loop
  1862.  
  1863. end
  1864.  
  1865. //---------------------------------------------------------------------------
  1866. // Abandon ABO Vator Door Setup
  1867. //---------------------------------------------------------------------------
  1868. AbandonABO_VatorDoorSetup:
  1869.  
  1870. local.Door string parm.Door
  1871. local.StartAngle = parm.StartAngle
  1872. local.Speed = parm.Speed
  1873.  
  1874. local.Door time local.Speed
  1875. local.Door rotateYup local.StartAngle
  1876. waitFor local.Door
  1877.  
  1878. AbandonABO_VatorDoor_Loop:
  1879. local.Door rotateYup 2
  1880. waitFor local.Door
  1881. local.Door rotateYup 4
  1882. waitFor local.Door
  1883. local.Door rotateYup 6
  1884. waitFor local.Door
  1885. local.Door rotateYup 4
  1886. waitFor local.Door
  1887. local.Door rotateYup 2
  1888. waitFor local.Door
  1889. local.Door rotateYdown 2
  1890. waitFor local.Door
  1891. local.Door rotateYdown 4
  1892. waitFor local.Door
  1893. local.Door rotateYdown 6
  1894. waitFor local.Door
  1895. local.Door rotateYdown 4
  1896. waitFor local.Door
  1897. local.Door rotateYdown 2
  1898. waitFor local.Door
  1899. goto AbandonABO_VatorDoor_Loop
  1900.  
  1901. end
  1902.  
  1903. //---------------------------------------------------------------------------
  1904. // Abandon ABO Box 1
  1905. //---------------------------------------------------------------------------
  1906. AbandonABO_Box1:
  1907. $abandon_abo_box1 moveUp 32
  1908. waitFor $abandon_abo_box1
  1909.  
  1910. $abandon_abo_box1 rotateY 10
  1911. $abandon_abo_box1 rotateX 8
  1912. wait 0.1
  1913. end
  1914.  
  1915. //---------------------------------------------------------------------------
  1916. // Abandon ABO Box 2
  1917. //---------------------------------------------------------------------------
  1918. AbandonABO_Box2:
  1919. $abandon_abo_box2 rotateYup 30
  1920. $abandon_abo_box2 rotateXup 30
  1921. wait 0.1
  1922. end
  1923.  
  1924. //---------------------------------------------------------------------------
  1925. // Abandon ABO Box 3
  1926. //---------------------------------------------------------------------------
  1927. AbandonABO_Box3:
  1928. $abandon_abo_box3 moveUp 24
  1929. waitFor $abandon_abo_box3
  1930.  
  1931. $abandon_abo_box3 rotateYup 45
  1932. $abandon_abo_box3 rotateXup 75
  1933. wait 0.1
  1934. end
  1935.  
  1936. //---------------------------------------------------------------------------
  1937. // Abandon ABO Box 4
  1938. //---------------------------------------------------------------------------
  1939. AbandonABO_Box4:
  1940. $abandon_abo_box4 rotateYup 15
  1941. waitFor $abandon_abo_box4
  1942.  
  1943. $abandon_abo_box4 time 4
  1944.  
  1945. Abandon_Box4_Loop:
  1946. $abandon_abo_box4 rotateXup 2
  1947. waitFor $abandon_abo_box4
  1948. $abandon_abo_box4 rotateXup 4
  1949. waitFor $abandon_abo_box4
  1950. $abandon_abo_box4 rotateXup 6
  1951. waitFor $abandon_abo_box4
  1952. $abandon_abo_box4 rotateXup 8
  1953. waitFor $abandon_abo_box4
  1954. $abandon_abo_box4 rotateXup 6
  1955. waitFor $abandon_abo_box4
  1956. $abandon_abo_box4 rotateXup 4
  1957. waitFor $abandon_abo_box4
  1958. $abandon_abo_box4 rotateXup 2
  1959. waitFor $abandon_abo_box4
  1960. $abandon_abo_box4 rotateXdown 2
  1961. waitFor $abandon_abo_box4
  1962. $abandon_abo_box4 rotateXdown 4
  1963. waitFor $abandon_abo_box4
  1964. $abandon_abo_box4 rotateXdown 6
  1965. waitFor $abandon_abo_box4
  1966. $abandon_abo_box4 rotateXdown 8
  1967. waitFor $abandon_abo_box4
  1968. $abandon_abo_box4 rotateXdown 6
  1969. waitFor $abandon_abo_box4
  1970. $abandon_abo_box4 rotateXdown 4
  1971. waitFor $abandon_abo_box4
  1972. $abandon_abo_box4 rotateXdown 2
  1973. waitFor $abandon_abo_box4
  1974. goto Abandon_Box4_Loop
  1975.  
  1976. end
  1977.  
  1978. //---------------------------------------------------------------------------
  1979. // Abandon ABO Box 5
  1980. //---------------------------------------------------------------------------
  1981. AbandonABO_Box5:
  1982. $abandon_abo_box5 moveDown 24
  1983. waitFor $abandon_abo_box5
  1984. end
  1985.  
  1986. //---------------------------------------------------------------------------
  1987. // Abandon ABO Box 6
  1988. //---------------------------------------------------------------------------
  1989. AbandonABO_Box6:
  1990. $abandon_abo_box6 rotateX 6
  1991. $abandon_abo_box6 moveUp 16
  1992. waitFor $abandon_abo_box6
  1993.  
  1994. $abandon_abo_box6 time 4
  1995.  
  1996. Abandon_Box6_Loop:
  1997. $abandon_abo_box6 rotateZup 2
  1998. waitFor $abandon_abo_box6
  1999. $abandon_abo_box6 rotateZup 4
  2000. waitFor $abandon_abo_box6
  2001. $abandon_abo_box6 rotateZup 6
  2002. waitFor $abandon_abo_box6
  2003. $abandon_abo_box6 rotateZup 8
  2004. waitFor $abandon_abo_box6
  2005. $abandon_abo_box6 rotateZup 6
  2006. waitFor $abandon_abo_box6
  2007. $abandon_abo_box6 rotateZup 4
  2008. waitFor $abandon_abo_box6
  2009. $abandon_abo_box6 rotateZup 2
  2010. waitFor $abandon_abo_box6
  2011. $abandon_abo_box6 rotateZdown 2
  2012. waitFor $abandon_abo_box6
  2013. $abandon_abo_box6 rotateZdown 4
  2014. waitFor $abandon_abo_box6
  2015. $abandon_abo_box6 rotateZdown 6
  2016. waitFor $abandon_abo_box6
  2017. $abandon_abo_box6 rotateZdown 8
  2018. waitFor $abandon_abo_box6
  2019. $abandon_abo_box6 rotateZdown 6
  2020. waitFor $abandon_abo_box6
  2021. $abandon_abo_box6 rotateZdown 4
  2022. waitFor $abandon_abo_box6
  2023. $abandon_abo_box6 rotateZdown 2
  2024. waitFor $abandon_abo_box6
  2025. goto Abandon_Box6_Loop
  2026.  
  2027.  
  2028. end
  2029.  
  2030. //---------------------------------------------------------------------------
  2031. // Abandon ABO Box 7
  2032. //---------------------------------------------------------------------------
  2033. AbandonABO_Box7:
  2034. $abandon_abo_box7 rotateY 10
  2035. $abandon_abo_box7 rotateZ 6
  2036. wait 0.1
  2037. end
  2038.  
  2039. //---------------------------------------------------------------------------
  2040. // Abandon ABO Lights
  2041. //---------------------------------------------------------------------------
  2042. AbandonABO_Lights:
  2043.  
  2044. $abandon_abo_lights lightstyle "Lffcfkcffkffcffcfcfcccfkcffc"
  2045. AbandonABO_Lights_Loop:
  2046. local.WaitTime randomint 10
  2047. local.WaitTime += 6
  2048. wait local.WaitTime
  2049. goto AbandonABO_Lights_Loop
  2050.  
  2051. end
  2052.  
  2053. //---------------------------------------------------------------------------
  2054. // Creaking Boards 1
  2055. //---------------------------------------------------------------------------
  2056.  
  2057. CreakingBoard1:
  2058.  
  2059. CreakingBoard1_Loop:
  2060. $boardcreak1 ontouch CreakingBoard1_PlaySound
  2061. pause
  2062.  
  2063. CreakingBoard1_PlaySound:
  2064. $boardcreak1 notouch
  2065. $boardcreak1 playsound "environment/woodcreak/smcreak1.wav"
  2066. waitForSound "environment/woodcreak/smcreak1.wav"
  2067. goto CreakingBoard1_Loop
  2068.  
  2069. end
  2070.  
  2071. //---------------------------------------------------------------------------
  2072. // Creaking Boards 2
  2073. //---------------------------------------------------------------------------
  2074.  
  2075. CreakingBoard2:
  2076.  
  2077. CreakingBoard2_Loop:
  2078. $boardcreak2 ontouch CreakingBoard2_PlaySound
  2079. pause
  2080.  
  2081. CreakingBoard2_PlaySound:
  2082. $boardcreak2 notouch
  2083. $boardcreak2 playsound "environment/woodcreak/smcreak2.wav"
  2084. waitForSound "environment/woodcreak/smcreak2.wav"
  2085. goto CreakingBoard2_Loop
  2086.  
  2087. end
  2088.  
  2089. //---------------------------------------------------------------------------
  2090. // Start Rocket Dude
  2091. //---------------------------------------------------------------------------
  2092. StartRocketDude:
  2093. // This thread here just because I'm a dumbass and forgot to delete
  2094. // the trigger calling it.
  2095. end
  2096.  
  2097.  
  2098. //-------------------------------------------------------
  2099. //-------------------------------------------------------
  2100. // Wieder Character Additions
  2101. //-------------------------------------------------------
  2102. //-------------------------------------------------------
  2103.  
  2104. //---------------------------------------------------------------------------
  2105. // Mancini Jumping
  2106. //---------------------------------------------------------------------------
  2107. AI_Mancini_Jumping:
  2108.  
  2109. local.self ignoreall
  2110. local.self definestate activate Mancini_Jump
  2111. pause
  2112.  
  2113. Mancini_Jump:
  2114. music surprise
  2115. local.self ignore activate
  2116. thread dialog::mancini_get_me_out
  2117. local.self runto $mancini_jump_end
  2118. waitFor local.self
  2119. local.self runto $mancini_escape
  2120. waitFor local.self
  2121. local.self remove
  2122. end
  2123.  
  2124. end
  2125.  
  2126. //---------------------------------------------------------------------------
  2127. // Mancini Tube
  2128. //---------------------------------------------------------------------------
  2129. AI_Mancini_Tube:
  2130.  
  2131. local.self ignoreall
  2132. local.self definestate activate Mancini_Tube_Activate
  2133. pause
  2134.  
  2135. Mancini_Tube_Activate:
  2136. local.self ignore activate
  2137. thread dialog::mancini_dont_let_thru
  2138. wait 2
  2139. local.self runto $mancini_tube_escape
  2140. waitFor local.self
  2141. local.self remove
  2142. level.PipeDown ifequal 0 wait 4
  2143. level.PipeDown ifequal 0 thread dialog::jc_way_into_pipe
  2144. end
  2145.  
  2146. end
  2147.  
  2148. //---------------------------------------------------------------------------
  2149. // Mancini Ladder
  2150. //---------------------------------------------------------------------------
  2151. AI_Mancini_Ladder:
  2152.  
  2153. $mancini_door lock
  2154. $weak_ladder time 1.5
  2155. $weak_ladder rotateZup 17
  2156. waitFor $weak_ladder
  2157.  
  2158. local.self ignoreall
  2159. local.self definestate activate Mancini_Ladder_Activate
  2160. pause
  2161.  
  2162. Mancini_Ladder_Activate:
  2163. local.self ignore activate
  2164. thread dialog::mancini_persistent
  2165. local.self anim "csite_12_ladder_push"
  2166. waitFor local.self
  2167. local.self anim "idle"
  2168. $weak_ladder rotateZup -107
  2169. waitFor $weak_ladder
  2170. $weak_ladder shatter "0 0 0" 30 50 75 .5 0
  2171. wait 0.1
  2172. $weak_ladder remove
  2173. thread dialog::jc_look_out_above
  2174. local.self runto $mancini_ladder_1
  2175. waitFor local.self
  2176. local.self runto $mancini_ladder_2
  2177. waitFor local.self
  2178. local.self runto $mancini_fall_escape
  2179. waitFor local.self
  2180. local.self remove
  2181. end
  2182.  
  2183. end
  2184.  
  2185. //---------------------------------------------------------------------------
  2186. // Mancini Final
  2187. //---------------------------------------------------------------------------
  2188. AI_Mancini_Final:
  2189.  
  2190. $end_thug1 hide
  2191. $end_thug2 hide
  2192. $end_thug3 hide
  2193. local.self hide
  2194. local.self ignoreall
  2195. local.self definestate activate Mancini_Final_Activate
  2196. pause
  2197.  
  2198. Mancini_Final_Activate:
  2199. music action
  2200. $end_thug1 show
  2201. $end_thug2 show
  2202. $end_thug3 show
  2203. local.self show
  2204. local.self ignore activate
  2205. thread dialog::mancini_blast_him
  2206. local.self runto $mancini_final_flee1
  2207. waitFor local.self
  2208. local.self runto $mancini_final_flee2
  2209. waitFor local.self
  2210. local.self runto $mancini_final_flee3
  2211. waitFor local.self
  2212. local.self runto $mancini_final_flee4
  2213. waitFor local.self
  2214. local.self remove
  2215. end
  2216.  
  2217. end
  2218.  
  2219. //---------------------------------------------------------------------------
  2220. // Thug in the dumpster
  2221. //---------------------------------------------------------------------------
  2222. AI_Thug_Dumpster:
  2223.  
  2224. local.self ignoresounds
  2225. local.self ignore sightenemy
  2226. local.self definestate activate Thug_Dumpster_Attack
  2227. pause
  2228.  
  2229. Thug_Dumpster_Attack:
  2230. local.self ignore activate
  2231. local.self anim "opencan1"
  2232. waitFor local.self
  2233. local.self anim "idle1"
  2234. local.self respondtoall
  2235. local.self attack *1
  2236. pause
  2237.  
  2238. end
  2239.  
  2240. //---------------------------------------------------------------------------
  2241. // Spawned Pipe Thug
  2242. //---------------------------------------------------------------------------
  2243. AI_PipeThug:
  2244.  
  2245. local.self item Health 50
  2246. local.self definestate idle PipeThug_Idle
  2247. local.self state idle
  2248. pause
  2249.  
  2250. PipeThug_Idle:
  2251. local.self ignoreall
  2252. local.self turnto 0
  2253. waitFor local.self
  2254. local.self runto $pipe_thug_node
  2255. waitFor local.self
  2256. local.self respondtoall
  2257. local.self state standground
  2258. end
  2259.  
  2260. end
  2261.  
  2262. //---------------------------------------------------------------------------
  2263. // Thug on ledge 1
  2264. //---------------------------------------------------------------------------
  2265. AI_Thug_Ledge1:
  2266.  
  2267. level.SkillLevel ifless 1 goto AI_Thug_Ledge1_Delete
  2268.  
  2269. local.self ignoresounds
  2270. local.self definestate activate Thug_Ledge1_Attack
  2271. local.self definestate idle Thug_Ledge1_Idle
  2272. local.self state idle
  2273. pause
  2274.  
  2275. Thug_Ledge1_Attack:
  2276. local.self respondtoall
  2277. local.self attack *1
  2278. pause
  2279.  
  2280. Thug_Ledge1_Idle:
  2281. local.self walkto $thug_ledge1_node1
  2282. waitFor local.self
  2283. local.self turnto 180
  2284. waitFor local.self
  2285. wait 2
  2286. local.self walkto $thug_ledge1_node2
  2287. waitFor local.self
  2288. local.self turnto 180
  2289. waitFor local.self
  2290. wait 2
  2291. goto Thug_Ledge1_Idle
  2292.  
  2293. AI_Thug_Ledge1_Delete:
  2294. local.self remove
  2295.  
  2296. end
  2297.  
  2298. //---------------------------------------------------------------------------
  2299. // Thug on ledge 2
  2300. //---------------------------------------------------------------------------
  2301. AI_Thug_Ledge2:
  2302.  
  2303. level.SkillLevel ifless 2 goto AI_Thug_Ledge2_Delete
  2304.  
  2305. local.self item Health 20
  2306. local.self ignoresounds
  2307. local.self definestate activate Thug_Ledge2_Attack
  2308. local.self definestate idle Thug_Ledge2_Idle
  2309. local.self state idle
  2310. pause
  2311.  
  2312. Thug_Ledge2_Attack:
  2313. local.self respondtoall
  2314. local.self attack *1
  2315. pause
  2316.  
  2317. Thug_Ledge2_Idle:
  2318. local.self walkto $thug_ledge2_node2
  2319. waitFor local.self
  2320. local.self turnto 180
  2321. waitFor local.self
  2322. wait 2
  2323. local.self walkto $thug_ledge2_node1
  2324. waitFor local.self
  2325. local.self turnto 180
  2326. waitFor local.self
  2327. wait 2
  2328. goto Thug_Ledge2_Idle
  2329.  
  2330. AI_Thug_Ledge2_Delete:
  2331. local.self remove
  2332.  
  2333. end
  2334.  
  2335. //---------------------------------------------------------------------------
  2336. // Thug 1 on roof 1
  2337. //---------------------------------------------------------------------------
  2338. AI_Thug1_Roof1:
  2339.  
  2340. local.self item Health 50
  2341. local.self ignoresounds
  2342. local.self ignore sightenemy
  2343. local.self definestate activate Thug1_Roof1_Attack
  2344. pause
  2345.  
  2346. Thug1_Roof1_Attack:
  2347. local.self ignore activate
  2348. local.self respondto pain
  2349. local.self runto $roof1_duck_node
  2350. waitFor local.self
  2351. local.self turnto 270
  2352. waitFor local.self
  2353. local.self respondtoall
  2354. local.self attack *1
  2355. pause
  2356.  
  2357. end
  2358.  
  2359. //---------------------------------------------------------------------------
  2360. // Thug 2 on roof 1
  2361. //---------------------------------------------------------------------------
  2362. AI_Thug2_Roof1:
  2363.  
  2364. local.self ignoresounds
  2365. local.self ignore sightenemy
  2366. local.self definestate activate Thug2_Roof1_Attack
  2367. pause
  2368.  
  2369. Thug2_Roof1_Attack:
  2370. local.self ignore activate
  2371. local.self respondto pain
  2372. local.self runto $roof1_standground
  2373. waitFor local.self
  2374. local.self respondtoall
  2375. local.self attack *1
  2376. pause
  2377.  
  2378. end
  2379.  
  2380. //---------------------------------------------------------------------------
  2381. // Hostage On Roof
  2382. //---------------------------------------------------------------------------
  2383. AI_Hostage_Roof:
  2384.  
  2385. level.Hostage1State = 0
  2386. local.self ignoreall
  2387. local.self respondto pain opendoor
  2388. local.self definestate idle Hostage_Roof_Idle
  2389. local.self definestate use Hostage_Roof_Saved
  2390. local.self definestate killed Hostage_Roof_Killed
  2391. local.self state idle
  2392. pause
  2393.  
  2394. Hostage_Roof_Idle:
  2395. local.self anim "crouch_idle"
  2396. waitFor local.self
  2397. pause
  2398.  
  2399. Hostage_Roof_Saved:
  2400. thread blade_saved_female_dialog_thread
  2401. level.Hostage1State = 1
  2402. local.self ignore use
  2403. local.self runto $roof_hostage_flee
  2404. waitFor local.self
  2405. local.self remove
  2406. end
  2407.  
  2408. Hostage_Roof_Killed:
  2409. level.SObjective2 ifequal 2 goto Hostage_Roof_Killed_FailedAlready
  2410. level.SObjective2 = 2
  2411. thread MissionComputer
  2412. thread global/universal_script.scr::SObjectiveFailed
  2413. Hostage_Roof_Killed_FailedAlready:
  2414. end
  2415.  
  2416. end
  2417.  
  2418. //---------------------------------------------------------------------------
  2419. // Construction Yard Thug 1
  2420. //---------------------------------------------------------------------------
  2421. AI_CYard_Thug1:
  2422. local.self item Health 20
  2423. local.self ignore sightenemy
  2424. local.self ignoresounds
  2425. local.self definestate activate CYard_Thug1_Active
  2426. local.self definestate idle CYard_Thug1_Idle
  2427. local.self state idle
  2428. pause
  2429.  
  2430. CYard_Thug1_Idle:
  2431. local.self walkto $outside_porto1
  2432. waitFor local.self
  2433. wait 4
  2434. local.self walkto $outside_porto3
  2435. waitFor local.self
  2436. wait 6
  2437. local.self walkto $outside_porto2
  2438. waitFor local.self
  2439. wait 2
  2440. local.self walkto $outside_porto3
  2441. waitFor local.self
  2442. wait 4
  2443. goto CYard_Thug1_Idle
  2444.  
  2445. CYard_Thug1_Active:
  2446. local.self ignore activate
  2447. local.self runto $thug1_scatter_spot
  2448. waitFor local.self
  2449. local.self respondtoall
  2450. local.self attack *1
  2451. pause
  2452.  
  2453. end
  2454.  
  2455. //---------------------------------------------------------------------------
  2456. // Construction Yard Thug 2
  2457. //---------------------------------------------------------------------------
  2458. AI_CYard_Thug2:
  2459. local.self item Health 20
  2460. local.self ignore sightenemy
  2461. local.self ignoresounds
  2462. local.self definestate activate CYard_Thug2_Active
  2463. pause
  2464.  
  2465. CYard_Thug2_Active:
  2466. local.self ignore activate
  2467. local.self runto $thug2_scatter_spot
  2468. waitFor local.self
  2469. local.self respondtoall
  2470. local.self attack *1
  2471. pause
  2472.  
  2473. end
  2474.  
  2475. //---------------------------------------------------------------------------
  2476. // Construction Yard Thug 3
  2477. //---------------------------------------------------------------------------
  2478. AI_CYard_Thug3:
  2479. level.SkillLevel ifless 2 goto AI_CYard_Thug3_Delete
  2480.  
  2481. local.self item Health 20
  2482. local.self ignore sightenemy
  2483. local.self ignoresounds
  2484. local.self definestate idle CYard_Thug3_Idle
  2485. local.self definestate activate CYard_Thug3_Active
  2486. local.self state idle
  2487. pause
  2488.  
  2489. CYard_Thug3_Active:
  2490. local.self ignore activate
  2491. local.self runto $thug3_scatter_spot
  2492. waitFor local.self
  2493. local.self respondtoall
  2494. local.self attack *1
  2495. pause
  2496.  
  2497. CYard_Thug3_Idle:
  2498. local.self walkto $thug3_node1
  2499. waitFor local.self
  2500. local.self walkto $thug3_node2
  2501. waitFor local.self
  2502. local.self walkto $thug3_node3
  2503. waitFor local.self
  2504. local.self walkto $thug3_node4
  2505. waitFor local.self
  2506. local.self walkto $thug3_node5
  2507. waitFor local.self
  2508. goto CYard_Thug3_Idle
  2509.  
  2510. AI_CYard_Thug3_Delete:
  2511. local.self remove
  2512.  
  2513. end
  2514.  
  2515. //---------------------------------------------------------------------------
  2516. // Construction Worker Pusing a Box
  2517. //---------------------------------------------------------------------------
  2518. AI_PushWorker:
  2519.  
  2520. local.self ignore sightenemy
  2521. local.self definestate activate PushWorker_Activate
  2522. local.self state idle
  2523. pause
  2524.  
  2525. PushWorker_Activate:
  2526. music suspense
  2527. local.Box string "$pushbox1"
  2528. local.self anim "push1"
  2529. $pushbox1 time 1
  2530. $pushbox1 moveBackward 32
  2531. waitFor $pushbox1
  2532. $pushbox1 moveBackward 32
  2533. waitFor $pushbox1
  2534. $pushbox1 moveBackward 32
  2535. waitFor $pushbox1
  2536. $pushbox1 moveBackward 32
  2537. waitFor $pushbox1
  2538. $pushbox1 moveBackward 32
  2539. waitFor $pushbox1
  2540. $pushbox1 moveBackward 32
  2541. waitFor $pushbox1
  2542. $pushbox1 moveBackward 32
  2543. waitFor $pushbox1
  2544. $pushbox1 moveBackward 32
  2545. waitFor $pushbox1
  2546. $pushbox1 moveBackward 32
  2547. waitFor $pushbox1
  2548. $pushbox1 moveBackward 32
  2549. waitFor $pushbox1
  2550. local.self anim "twitch1"
  2551. wait 2
  2552. local.self anim "twitch2"
  2553. wait 2
  2554. local.self walkto $cworker1_node1
  2555. waitFor local.self
  2556. local.self walkto $cworker1_box2
  2557. waitFor local.self
  2558. local.self turnto 180
  2559. waitFor local.self
  2560. local.Box string "$pushbox2"
  2561. local.self anim "push1"
  2562. $pushbox2 time 1
  2563. $pushbox2 moveBackward 32
  2564. waitFor $pushbox2
  2565. $pushbox2 moveBackward 32
  2566. waitFor $pushbox2
  2567. $pushbox2 moveBackward 32
  2568. waitFor $pushbox2
  2569. $pushbox2 moveBackward 32
  2570. waitFor $pushbox2
  2571. local.self anim "twitch1"
  2572. wait 2
  2573. local.self anim "push1"
  2574. $pushbox2 moveBackward 32
  2575. waitFor $pushbox2
  2576. $pushbox2 moveBackward 32
  2577. waitFor $pushbox2
  2578. $pushbox2 moveBackward 32
  2579. waitFor $pushbox2
  2580. $pushbox2 moveBackward 32
  2581. waitFor $pushbox2
  2582. local.self anim "twitch2"
  2583. wait 2
  2584. local.self anim "push1"
  2585. $pushbox2 moveBackward 32
  2586. waitFor $pushbox2
  2587. $pushbox2 moveBackward 32
  2588. waitFor $pushbox2
  2589. $pushbox2 moveBackward 32
  2590. waitFor $pushbox2
  2591. $pushbox2 moveBackward 32
  2592. waitFor $pushbox2
  2593. local.self walkto $cworker1_node1
  2594. waitFor local.self
  2595. local.self walkto $cworker1_node2
  2596. waitFor local.self
  2597. local.self walkto $cworker1_node3
  2598. waitFor local.self
  2599. local.self anim "twitch2"
  2600. waitFor local.self
  2601. local.self walkto $cworker1_node4
  2602. waitFor local.self
  2603. local.self walkto $cworker1_node5
  2604. waitFor local.self
  2605. local.self walkto $cworker1_node6
  2606. waitFor local.self
  2607. local.self turnto 90
  2608. waitFor local.self
  2609. local.self anim "twitch2"
  2610. waitFor local.self
  2611. local.self anim "idle1"
  2612. end
  2613.  
  2614. end
  2615.  
  2616. //---------------------------------------------------------------------------
  2617. // Basement Thug 1
  2618. //---------------------------------------------------------------------------
  2619. AI_Basement_Thug1:
  2620. //local.self ignoresounds
  2621. //pause
  2622. end
  2623.  
  2624. //---------------------------------------------------------------------------
  2625. // Basement Thug 2
  2626. //---------------------------------------------------------------------------
  2627. AI_Basement_Thug2:
  2628. //local.self ignoresounds
  2629. //pause
  2630. end
  2631.  
  2632. //---------------------------------------------------------------------------
  2633. // Basement Thug Ambush
  2634. //---------------------------------------------------------------------------
  2635. AI_Basement_ThugAmbush:
  2636. local.self item Health 50
  2637. //local.self ignoresounds
  2638. //pause
  2639. end
  2640.  
  2641. //---------------------------------------------------------------------------
  2642. // Basement Thugs
  2643. //---------------------------------------------------------------------------
  2644. AI_Basement_Thugs:
  2645.  
  2646. local.ThugNum = parm.ThugNum
  2647. local.Node string "$basement_guy"
  2648. local.Node appendint local.ThugNum
  2649. local.Node append "_node"
  2650.  
  2651. local.self ignoresounds
  2652. local.self ignore sightenemy
  2653. local.self definestate activate Basement_Thugs_Active
  2654. pause
  2655.  
  2656. Basement_Thugs_Active:
  2657. local.self ignore activate
  2658. local.ThugNum ifequal 3 local.self walkto local.Node
  2659. local.ThugNum ifequal 4 local.self walkto local.Node
  2660. local.ThugNum ifequal 5 local.self walkto local.Node
  2661. local.ThugNum ifequal 6 local.self runto local.Node
  2662. local.ThugNum ifequal 7 local.self runto local.Node
  2663. waitFor local.self
  2664. local.ThugNum ifequal 3 local.self turnto 0
  2665. local.ThugNum ifequal 4 local.self turnto 270
  2666. local.ThugNum ifequal 5 local.self turnto 270
  2667. local.ThugNum ifequal 6 local.self turnto 0
  2668. local.ThugNum ifequal 7 local.self turnto 0
  2669. waitFor local.self
  2670. local.self respondtoall
  2671. local.self attack *1
  2672. pause
  2673.  
  2674. end
  2675.  
  2676. //---------------------------------------------------------------------------
  2677. // Bum 1
  2678. //---------------------------------------------------------------------------
  2679. AI_Bum1:
  2680.  
  2681. local.self ignoreall
  2682. local.self respondto pain killed use
  2683. local.self definestate use Bum1_Use
  2684. local.self definestate idle Bum1_Idle
  2685. local.self state idle
  2686. pause
  2687.  
  2688. Bum1_Idle:
  2689. local.self walkto $bum1_node1
  2690. waitFor local.self
  2691. local.self anim "twitch2"
  2692. waitFor local.self
  2693. local.self walkto $bum1_node2
  2694. waitFor local.self
  2695. local.self anim "idle1"
  2696. waitFor local.self
  2697. local.self walkto $bum1_node3
  2698. waitFor local.self
  2699. local.self walkto $bum1_node4
  2700. waitFor local.self
  2701. local.self anim "twitch2"
  2702. local.self walkto $bum1_node3
  2703. waitFor local.self
  2704. local.self walkto $bum1_node2
  2705. waitFor local.self
  2706. local.self walkto $bum1_node1
  2707. waitFor local.self
  2708. local.self anim "idle1"
  2709. waitFor local.self
  2710. goto Bum1_Idle
  2711.  
  2712. Bum1_Use:
  2713. local.self ignore use
  2714. parm.SaySomething = 0
  2715. thread bum_say_something_thread
  2716. end
  2717.  
  2718. end
  2719.  
  2720. //---------------------------------------------------------------------------
  2721. // Bum 2
  2722. //---------------------------------------------------------------------------
  2723. AI_Bum2:
  2724.  
  2725. local.self ignoreall
  2726. local.self respondto pain killed use
  2727. local.self definestate use Bum2_Use
  2728. local.self definestate idle Bum2_Idle
  2729. local.self state idle
  2730. pause
  2731.  
  2732. Bum2_Idle:
  2733. local.self anim "idle1"
  2734. pause
  2735.  
  2736. Bum2_Use:
  2737. local.self ignore use
  2738. parm.SaySomething = 6
  2739. thread bum_say_something_thread
  2740. end
  2741.  
  2742. end
  2743.  
  2744. //---------------------------------------------------------------------------
  2745. // Vator Thug 1
  2746. //---------------------------------------------------------------------------
  2747. AI_Vator_Thug1:
  2748. local.self item Health 50
  2749. local.self ignoresounds
  2750. local.self definestate activate Vator_Thug1_Active
  2751. pause
  2752.  
  2753. Vator_Thug1_Active:
  2754. local.self runto $vator_thug1_node
  2755. waitFor local.self
  2756. local.self respondtoall
  2757. local.self attack *1
  2758. pause
  2759.  
  2760. end
  2761.  
  2762. //---------------------------------------------------------------------------
  2763. // Vator Thug 2
  2764. //---------------------------------------------------------------------------
  2765. AI_Vator_Thug2:
  2766. local.self ignoresounds
  2767. local.self definestate activate Vator_Thug2_Active
  2768. pause
  2769.  
  2770. Vator_Thug2_Active:
  2771. local.self respondtoall
  2772. local.self attack *1
  2773. pause
  2774.  
  2775. end
  2776.  
  2777. //---------------------------------------------------------------------------
  2778. // Vator Thug 3
  2779. //---------------------------------------------------------------------------
  2780. AI_Vator_Thug3:
  2781. local.self item Health 20
  2782. local.self ignoresounds
  2783. local.self definestate activate Vator_Thug3_Active
  2784. pause
  2785.  
  2786. Vator_Thug3_Active:
  2787. local.self respondtoall
  2788. local.self attack *1
  2789. pause
  2790.  
  2791. end
  2792.  
  2793. //---------------------------------------------------------------------------
  2794. // Hostage near Vator
  2795. //---------------------------------------------------------------------------
  2796. AI_Hostage_Vator:
  2797.  
  2798. local.self ignoreall
  2799. local.self respondto pain opendoor
  2800. local.self definestate idle Hostage_Vator_Idle
  2801. local.self definestate use Hostage_Vator_Saved
  2802. local.self definestate killed Hostage_Vator_Killed
  2803. local.self state idle
  2804. pause
  2805.  
  2806. Hostage_Vator_Idle:
  2807. local.self anim "crouch_idle"
  2808. waitFor local.self
  2809. pause
  2810.  
  2811. Hostage_Vator_Saved:
  2812. thread blade_saved_female_dialog_thread
  2813. local.self runto $vator_hostage_stage1
  2814. waitFor local.self
  2815. local.self runto $vator_hostage_stage2
  2816. waitFor local.self
  2817. local.self runto $vator_hostage_stage3
  2818. waitFor local.self
  2819. local.self runto $vator_hostage_flee
  2820. waitFor local.self
  2821. local.self remove
  2822. end
  2823.  
  2824. Hostage_Vator_Killed:
  2825. level.SObjective2 ifequal 2 goto Hostage_Vator_Killed_FailedAlready
  2826. level.SObjective2 = 2
  2827. thread MissionComputer
  2828. thread global/universal_script.scr::SObjectiveFailed
  2829. Hostage_Vator_Killed_FailedAlready:
  2830. end
  2831.  
  2832. end
  2833.  
  2834. //---------------------------------------------------------------------------
  2835. // Thugs Outside
  2836. //---------------------------------------------------------------------------
  2837. AI_OutsideThugs:
  2838. local.self health 20
  2839. end
  2840.  
  2841. //---------------------------------------------------------------------------
  2842. // Thugs at the end
  2843. //---------------------------------------------------------------------------
  2844. AI_EndThugs:
  2845. local.self health 50
  2846. end
  2847.  
  2848. //---------------------------------------------------------------------------
  2849. // Foreman in the trailer
  2850. //---------------------------------------------------------------------------
  2851. AI_Foreman:
  2852. local.self attachmodel blueprints.def gun blueprints
  2853. local.self ignoreall
  2854. local.self respondto pain
  2855. local.self anim "sitting"
  2856. local.self definestate killed Foreman_Killed
  2857. local.self definestate activate Foreman_Scared
  2858. local.self definestate use Foreman_Conversation
  2859. local.self definestate idle Foreman_Waiting
  2860. local.self state idle
  2861. pause
  2862.  
  2863. Foreman_Waiting:
  2864. local.self anim "sitting"
  2865. pause
  2866.  
  2867. Foreman_Scared:
  2868. local.self ignore activate
  2869. local.self anim "getup"
  2870. waitFor local.self
  2871. thread dialog::blade_foreman_scared
  2872. local.self anim "idle1"
  2873. pause
  2874.  
  2875. Foreman_Conversation:
  2876. music suspense
  2877. local.self anim "idle1"
  2878. local.self ignore use
  2879. cinematic
  2880. hud 0
  2881. freezeplayer
  2882. $foreman_camera2 fixedposition
  2883. $foreman_camera1 fixedposition
  2884. cuecamera $foreman_camera1
  2885. fadein 4 0 0 0
  2886. wait 1.5
  2887. thread dialog::blade_foreman
  2888. waitForSound "dialog/csite/blade/vent1.wav" .3
  2889. local.self anim "twitch2"
  2890. waitForSound "dialog/csite/foreman/info1.wav" .3
  2891. local.self anim "handitem"
  2892. waitForSound "dialog/csite/foreman/take.wav" .1
  2893. $blueprints hide
  2894. local.self anim "twitch1"
  2895. waitForSound "dialog/csite/blade/whtth1.wav" .3
  2896. local.self anim "twitch2"
  2897. waitForSound "dialog/csite/foreman/info2.wav" .1
  2898. local.self anim "idle1"
  2899. waitForSound "dialog/csite/foreman/plsgo.wav" .1
  2900. hud 1
  2901. fadein 4 0 0 0
  2902. cueplayer
  2903. noncinematic
  2904. releaseplayer
  2905. local.self respondto pain killed
  2906.  
  2907. trigger $foreman_guards
  2908. *1 item blueprints 1
  2909. game.csite_HaveBlueprints = 1
  2910. level.SObjective1 = 1
  2911. thread MissionComputer
  2912. thread global/universal_script.scr::SObjectiveComplete
  2913. wait 0.1
  2914. $csite_thug1 thread AI_CYard_Thug1
  2915. $csite_thug2 thread AI_CYard_Thug2
  2916. pause
  2917.  
  2918. Foreman_Killed:
  2919. $blueprints hide
  2920. $foreman_clip notsolid
  2921. level.SObjective1 ifequal 0 level.SObjective1 = 2
  2922. level.SObjective1 ifequal 2 thread MissionComputer
  2923. level.SObjective1 ifequal 2 thread global/universal_script.scr::SObjectiveFailed
  2924. level.SObjective1 ifequal 2 trigger $foreman_guards
  2925. wait 0.1
  2926. trigger $csite_thug1
  2927. trigger $csite_thug2
  2928. end
  2929.  
  2930. //---------------------------------------------------------------------------
  2931. //---------------------------------------------------------------------------
  2932. //---------------------------------------------------------------------------
  2933. //---------------------------------------------------------------------------
  2934.  
  2935. // blade_saved_female_dialog_thread:
  2936. /////////////////////////////////////////////////////////////////////////////
  2937. blade_saved_female_dialog_thread:
  2938.  
  2939. local.Count randomint 2
  2940.  
  2941. local.Count ifequal 0 thread dialog::blade_civfemale_rescue1
  2942. local.Count ifequal 1 thread dialog::blade_civfemale_rescue2
  2943. waitForThread parm.previousthread
  2944.  
  2945. end
  2946.  
  2947. // bum_leave_alone_dialog_thread:
  2948. /////////////////////////////////////////////////////////////////////////////
  2949. bum_say_something_thread:
  2950. local.SaySomething = parm.SaySomething
  2951. local.SaySomething ifequal 0 thread dialog::bum_whos_in_costume
  2952. local.SaySomething ifequal 6 thread dialog::bum_staying
  2953. waitForThread parm.previousthread
  2954. end
  2955.  
  2956. //---------------------------------------------------------------------------
  2957. // Precache
  2958. //---------------------------------------------------------------------------
  2959.  
  2960.  
  2961.  
  2962.  
  2963. // sound precache
  2964. precache:
  2965.   cachesound dialog/csite/blade/vent1.wav
  2966.   cachesound dialog/csite/blade/whtth1.wav
  2967.   cachesound dialog/csite/foreman/info1.wav
  2968.   cachesound dialog/csite/foreman/info2.wav
  2969.   cachesound dialog/csite/foreman/plsgo.wav
  2970.   cachesound dialog/csite/foreman/take.wav
  2971.   cachesound environment/cabinet/drawer/cab11.wav
  2972.   cachesound environment/cabinet/drawer/cab12.wav
  2973.   cachesound environment/cabinet/latch32.wav
  2974.   cachesound environment/doors/metal/mtlclose.wav
  2975.   cachesound environment/doors/metal/mtlcls3.wav
  2976.   cachesound environment/doors/metal/mtldrcl3.wav
  2977.   cachesound environment/levelsnds/csite/cnstlp7.wav
  2978.   cachesound environment/rockfall/hvyrcks3.wav
  2979.   cachesound environment/rockfall/hvyrckss.wav
  2980.   cachesound environment/rockfall/sldngrck.wav
  2981.   cachesound environment/woodcreak/crkngwds.wav
  2982.   cachesound environment/woodcreak/smcreak1.wav
  2983.   cachesound environment/woodcreak/smcreak2.wav
  2984.   cachesound impact/comp_explode/cmpmx4.wav
  2985.   cachesound impact/explosion/lrg1.wav
  2986.   cachesound impact/explosion/track65.wav
  2987.   cachesound impact/metal.wav
  2988.   cachesound misc/metcreak.wav
  2989.   cachesound vehicle/bulldoze/idle.wav
  2990.   cachesound vehicle/bulldoze/run.wav
  2991. end
  2992.  
  2993.